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
;
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.Setter
;
import
java.sql.Timestamp
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
/**
/**
* @author Zheng Jie
* @author Zheng Jie
* @date 2019-03-29
* @date 2019-03-29
*/
*/
@Data
@Getter
@Setter
@NoArgsConstructor
@NoArgsConstructor
public
class
JobDTO
implements
Serializable
{
public
class
JobDTO
implements
Serializable
{
/**
* ID
*/
private
Long
id
;
private
Long
id
;
private
Long
sort
;
private
Long
sort
;
/**
* 名称
*/
private
String
name
;
private
String
name
;
/**
* 状态
*/
private
Boolean
enabled
;
private
Boolean
enabled
;
private
DeptDTO
dept
;
private
DeptDTO
dept
;
/**
* 如果分公司存在相同部门,则显示上级部门名称
*/
private
String
deptSuperiorName
;
private
String
deptSuperiorName
;
/**
* 创建日期
*/
private
Timestamp
createTime
;
private
Timestamp
createTime
;
public
JobDTO
(
String
name
,
Boolean
enabled
)
{
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 {
...
@@ -27,4 +27,10 @@ public class JobQueryCriteria {
@Query
(
propName
=
"id"
,
joinName
=
"dept"
,
type
=
Query
.
Type
.
IN
)
@Query
(
propName
=
"id"
,
joinName
=
"dept"
,
type
=
Query
.
Type
.
IN
)
private
Set
<
Long
>
deptIds
;
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;
...
@@ -12,13 +12,7 @@ import java.io.Serializable;
@NoArgsConstructor
@NoArgsConstructor
public
class
JobSmallDTO
implements
Serializable
{
public
class
JobSmallDTO
implements
Serializable
{
/**
* ID
*/
private
Long
id
;
private
Long
id
;
/**
* 名称
*/
private
String
name
;
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
;
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.sql.Timestamp
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
/**
/**
* @author Zheng Jie
* @author Zheng Jie
* @date 2018-12-17
* @date 2018-12-17
*/
*/
@Data
@Getter
public
class
MenuDTO
{
@Setter
public
class
MenuDTO
implements
Serializable
{
private
Long
id
;
private
Long
id
;
private
Integer
type
;
private
String
permission
;
private
String
name
;
private
String
name
;
private
Long
sort
;
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;
...
@@ -3,6 +3,8 @@ package me.zhengjie.modules.system.service.dto;
import
lombok.Data
;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
import
me.zhengjie.annotation.Query
;
import
java.sql.Timestamp
;
/**
/**
* 公共查询类
* 公共查询类
*/
*/
...
@@ -12,4 +14,10 @@ public class MenuQueryCriteria {
...
@@ -12,4 +14,10 @@ public class MenuQueryCriteria {
// 多字段模糊
// 多字段模糊
@Query
(
blurry
=
"name,path,component"
)
@Query
(
blurry
=
"name,path,component"
)
private
String
blurry
;
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
;
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.util.Set
;
import
java.util.Set
;
...
@@ -9,7 +11,8 @@ import java.util.Set;
...
@@ -9,7 +11,8 @@ import java.util.Set;
* @author Zheng Jie
* @author Zheng Jie
* @date 2018-11-23
* @date 2018-11-23
*/
*/
@Data
@Getter
@Setter
public
class
RoleDTO
implements
Serializable
{
public
class
RoleDTO
implements
Serializable
{
private
Long
id
;
private
Long
id
;
...
@@ -22,7 +25,7 @@ public class RoleDTO implements Serializable {
...
@@ -22,7 +25,7 @@ public class RoleDTO implements Serializable {
private
String
remark
;
private
String
remark
;
private
S
et
<
PermissionDTO
>
permission
s
;
private
S
tring
permission
;
private
Set
<
MenuDTO
>
menus
;
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;
...
@@ -3,6 +3,8 @@ package me.zhengjie.modules.system.service.dto;
import
lombok.Data
;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
import
me.zhengjie.annotation.Query
;
import
java.sql.Timestamp
;
/**
/**
* 公共查询类
* 公共查询类
*/
*/
...
@@ -12,4 +14,10 @@ public class RoleQueryCriteria {
...
@@ -12,4 +14,10 @@ public class RoleQueryCriteria {
// 多字段模糊
// 多字段模糊
@Query
(
blurry
=
"name,remark"
)
@Query
(
blurry
=
"name,remark"
)
private
String
blurry
;
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
;
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.Set
;
/**
/**
* @author Zheng Jie
* @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;
...
@@ -2,7 +2,9 @@ package me.zhengjie.modules.system.service.dto;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -12,7 +14,8 @@ import java.util.Set;
...
@@ -12,7 +14,8 @@ import java.util.Set;
* @author Zheng Jie
* @author Zheng Jie
* @date 2018-11-23
* @date 2018-11-23
*/
*/
@Data
@Getter
@Setter
public
class
UserDTO
implements
Serializable
{
public
class
UserDTO
implements
Serializable
{
@ApiModelProperty
(
hidden
=
true
)
@ApiModelProperty
(
hidden
=
true
)
...
@@ -31,8 +34,6 @@ public class UserDTO implements Serializable {
...
@@ -31,8 +34,6 @@ public class UserDTO implements Serializable {
@JsonIgnore
@JsonIgnore
private
String
password
;
private
String
password
;
private
Timestamp
createTime
;
private
Date
lastPasswordResetTime
;
private
Date
lastPasswordResetTime
;
@ApiModelProperty
(
hidden
=
true
)
@ApiModelProperty
(
hidden
=
true
)
...
@@ -44,4 +45,6 @@ public class UserDTO implements Serializable {
...
@@ -44,4 +45,6 @@ public class UserDTO implements Serializable {
private
DeptSmallDTO
dept
;
private
DeptSmallDTO
dept
;
private
Long
deptId
;
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;
...
@@ -3,6 +3,7 @@ package me.zhengjie.modules.system.service.dto;
import
lombok.Data
;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
import
me.zhengjie.annotation.Query
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.Set
;
import
java.util.Set
;
/**
/**
...
@@ -26,4 +27,10 @@ public class UserQueryCriteria implements Serializable {
...
@@ -26,4 +27,10 @@ public class UserQueryCriteria implements Serializable {
private
Boolean
enabled
;
private
Boolean
enabled
;
private
Long
deptId
;
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;
...
@@ -3,17 +3,23 @@ package me.zhengjie.modules.system.service.impl;
import
me.zhengjie.exception.BadRequestException
;
import
me.zhengjie.exception.BadRequestException
;
import
me.zhengjie.modules.system.domain.Dept
;
import
me.zhengjie.modules.system.domain.Dept
;
import
me.zhengjie.modules.system.service.dto.DeptQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.DeptQueryCriteria
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
me.zhengjie.utils.ValidationUtil
;
import
me.zhengjie.modules.system.repository.DeptRepository
;
import
me.zhengjie.modules.system.repository.DeptRepository
;
import
me.zhengjie.modules.system.service.DeptService
;
import
me.zhengjie.modules.system.service.DeptService
;
import
me.zhengjie.modules.system.service.dto.DeptDTO
;
import
me.zhengjie.modules.system.service.dto.DeptDTO
;
import
me.zhengjie.modules.system.service.mapper.DeptMapper
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -22,28 +28,35 @@ import java.util.stream.Collectors;
...
@@ -22,28 +28,35 @@ import java.util.stream.Collectors;
* @date 2019-03-25
* @date 2019-03-25
*/
*/
@Service
@Service
@CacheConfig
(
cacheNames
=
"dept"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DeptServiceImpl
implements
DeptService
{
public
class
DeptServiceImpl
implements
DeptService
{
@Autowired
private
final
DeptRepository
deptRepository
;
private
DeptRepository
deptRepository
;
private
final
DeptMapper
deptMapper
;
@Autowired
public
DeptServiceImpl
(
DeptRepository
deptRepository
,
DeptMapper
deptMapper
)
{
private
DeptMapper
deptMapper
;
this
.
deptRepository
=
deptRepository
;
this
.
deptMapper
=
deptMapper
;
}
@Override
@Override
@Cacheable
public
List
<
DeptDTO
>
queryAll
(
DeptQueryCriteria
criteria
)
{
public
List
<
DeptDTO
>
queryAll
(
DeptQueryCriteria
criteria
)
{
return
deptMapper
.
toDto
(
deptRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
return
deptMapper
.
toDto
(
deptRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
}
}
@Override
@Override
@Cacheable
(
key
=
"#p0"
)
public
DeptDTO
findById
(
Long
id
)
{
public
DeptDTO
findById
(
Long
id
)
{
Optional
<
Dept
>
dept
=
deptRepository
.
findById
(
id
);
Dept
dept
=
deptRepository
.
findById
(
id
)
.
orElseGet
(
Dept:
:
new
)
;
ValidationUtil
.
isNull
(
dept
,
"Dept"
,
"id"
,
id
);
ValidationUtil
.
isNull
(
dept
.
getId
()
,
"Dept"
,
"id"
,
id
);
return
deptMapper
.
toDto
(
dept
.
get
()
);
return
deptMapper
.
toDto
(
dept
);
}
}
@Override
@Override
@Cacheable
public
List
<
Dept
>
findByPid
(
long
pid
)
{
public
List
<
Dept
>
findByPid
(
long
pid
)
{
return
deptRepository
.
findByPid
(
pid
);
return
deptRepository
.
findByPid
(
pid
);
}
}
...
@@ -54,11 +67,12 @@ public class DeptServiceImpl implements DeptService {
...
@@ -54,11 +67,12 @@ public class DeptServiceImpl implements DeptService {
}
}
@Override
@Override
@Cacheable
public
Object
buildTree
(
List
<
DeptDTO
>
deptDTOS
)
{
public
Object
buildTree
(
List
<
DeptDTO
>
deptDTOS
)
{
Set
<
DeptDTO
>
trees
=
new
LinkedHashSet
<>();
Set
<
DeptDTO
>
trees
=
new
LinkedHashSet
<>();
Set
<
DeptDTO
>
depts
=
new
LinkedHashSet
<>();
Set
<
DeptDTO
>
depts
=
new
LinkedHashSet
<>();
List
<
String
>
deptNames
=
deptDTOS
.
stream
().
map
(
DeptDTO:
:
getName
).
collect
(
Collectors
.
toList
());
List
<
String
>
deptNames
=
deptDTOS
.
stream
().
map
(
DeptDTO:
:
getName
).
collect
(
Collectors
.
toList
());
B
oolean
isChild
;
b
oolean
isChild
;
for
(
DeptDTO
deptDTO
:
deptDTOS
)
{
for
(
DeptDTO
deptDTO
:
deptDTOS
)
{
isChild
=
false
;
isChild
=
false
;
if
(
"0"
.
equals
(
deptDTO
.
getPid
().
toString
()))
{
if
(
"0"
.
equals
(
deptDTO
.
getPid
().
toString
()))
{
...
@@ -68,7 +82,7 @@ public class DeptServiceImpl implements DeptService {
...
@@ -68,7 +82,7 @@ public class DeptServiceImpl implements DeptService {
if
(
it
.
getPid
().
equals
(
deptDTO
.
getId
()))
{
if
(
it
.
getPid
().
equals
(
deptDTO
.
getId
()))
{
isChild
=
true
;
isChild
=
true
;
if
(
deptDTO
.
getChildren
()
==
null
)
{
if
(
deptDTO
.
getChildren
()
==
null
)
{
deptDTO
.
setChildren
(
new
ArrayList
<
DeptDTO
>());
deptDTO
.
setChildren
(
new
ArrayList
<>());
}
}
deptDTO
.
getChildren
().
add
(
it
);
deptDTO
.
getChildren
().
add
(
it
);
}
}
...
@@ -83,36 +97,51 @@ public class DeptServiceImpl implements DeptService {
...
@@ -83,36 +97,51 @@ public class DeptServiceImpl implements DeptService {
trees
=
depts
;
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
(
"totalElements"
,
totalElements
);
map
.
put
(
"content"
,
CollectionUtils
.
isEmpty
(
trees
)?
deptDTOS:
trees
);
map
.
put
(
"content"
,
CollectionUtils
.
isEmpty
(
trees
)?
deptDTOS:
trees
);
return
map
;
return
map
;
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DeptDTO
create
(
Dept
resources
)
{
public
DeptDTO
create
(
Dept
resources
)
{
return
deptMapper
.
toDto
(
deptRepository
.
save
(
resources
));
return
deptMapper
.
toDto
(
deptRepository
.
save
(
resources
));
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Dept
resources
)
{
public
void
update
(
Dept
resources
)
{
if
(
resources
.
getId
().
equals
(
resources
.
getPid
()))
{
if
(
resources
.
getId
().
equals
(
resources
.
getPid
()))
{
throw
new
BadRequestException
(
"上级不能为自己"
);
throw
new
BadRequestException
(
"上级不能为自己"
);
}
}
Optional
<
Dept
>
optionalDept
=
deptRepository
.
findById
(
resources
.
getId
());
Dept
dept
=
deptRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Dept:
:
new
);
ValidationUtil
.
isNull
(
optionalDept
,
"Dept"
,
"id"
,
resources
.
getId
());
ValidationUtil
.
isNull
(
dept
.
getId
(),
"Dept"
,
"id"
,
resources
.
getId
());
Dept
dept
=
optionalDept
.
get
();
resources
.
setId
(
dept
.
getId
());
resources
.
setId
(
dept
.
getId
());
deptRepository
.
save
(
resources
);
deptRepository
.
save
(
resources
);
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
public
void
delete
(
Long
id
)
{
deptRepository
.
deleteById
(
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;
...
@@ -9,60 +9,68 @@ import me.zhengjie.modules.system.repository.DictDetailRepository;
import
me.zhengjie.modules.system.service.DictDetailService
;
import
me.zhengjie.modules.system.service.DictDetailService
;
import
me.zhengjie.modules.system.service.dto.DictDetailDTO
;
import
me.zhengjie.modules.system.service.dto.DictDetailDTO
;
import
me.zhengjie.modules.system.service.mapper.DictDetailMapper
;
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.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Optional
;
/**
/**
* @author Zheng Jie
* @author Zheng Jie
* @date 2019-04-10
* @date 2019-04-10
*/
*/
@Service
@Service
@CacheConfig
(
cacheNames
=
"dictDetail"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DictDetailServiceImpl
implements
DictDetailService
{
public
class
DictDetailServiceImpl
implements
DictDetailService
{
@Autowired
private
final
DictDetailRepository
dictDetailRepository
;
private
DictDetailRepository
dictDetailRepository
;
private
final
DictDetailMapper
dictDetailMapper
;
@Autowired
public
DictDetailServiceImpl
(
DictDetailRepository
dictDetailRepository
,
DictDetailMapper
dictDetailMapper
)
{
private
DictDetailMapper
dictDetailMapper
;
this
.
dictDetailRepository
=
dictDetailRepository
;
this
.
dictDetailMapper
=
dictDetailMapper
;
}
@Override
@Override
@Cacheable
public
Map
queryAll
(
DictDetailQueryCriteria
criteria
,
Pageable
pageable
)
{
public
Map
queryAll
(
DictDetailQueryCriteria
criteria
,
Pageable
pageable
)
{
Page
<
DictDetail
>
page
=
dictDetailRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
Page
<
DictDetail
>
page
=
dictDetailRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
dictDetailMapper:
:
toDto
));
return
PageUtil
.
toPage
(
page
.
map
(
dictDetailMapper:
:
toDto
));
}
}
@Override
@Override
@Cacheable
(
key
=
"#p0"
)
public
DictDetailDTO
findById
(
Long
id
)
{
public
DictDetailDTO
findById
(
Long
id
)
{
Optional
<
DictDetail
>
dictDetail
=
dictDetailRepository
.
findById
(
id
);
DictDetail
dictDetail
=
dictDetailRepository
.
findById
(
id
)
.
orElseGet
(
DictDetail:
:
new
)
;
ValidationUtil
.
isNull
(
dictDetail
,
"DictDetail"
,
"id"
,
id
);
ValidationUtil
.
isNull
(
dictDetail
.
getId
()
,
"DictDetail"
,
"id"
,
id
);
return
dictDetailMapper
.
toDto
(
dictDetail
.
get
()
);
return
dictDetailMapper
.
toDto
(
dictDetail
);
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DictDetailDTO
create
(
DictDetail
resources
)
{
public
DictDetailDTO
create
(
DictDetail
resources
)
{
return
dictDetailMapper
.
toDto
(
dictDetailRepository
.
save
(
resources
));
return
dictDetailMapper
.
toDto
(
dictDetailRepository
.
save
(
resources
));
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
DictDetail
resources
)
{
public
void
update
(
DictDetail
resources
)
{
Optional
<
DictDetail
>
optionalDictDetail
=
dictDetailRepository
.
findById
(
resources
.
getId
());
DictDetail
dictDetail
=
dictDetailRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
DictDetail:
:
new
);
ValidationUtil
.
isNull
(
optionalDictDetail
,
"DictDetail"
,
"id"
,
resources
.
getId
());
ValidationUtil
.
isNull
(
dictDetail
.
getId
(),
"DictDetail"
,
"id"
,
resources
.
getId
());
DictDetail
dictDetail
=
optionalDictDetail
.
get
();
resources
.
setId
(
dictDetail
.
getId
());
resources
.
setId
(
dictDetail
.
getId
());
dictDetailRepository
.
save
(
resources
);
dictDetailRepository
.
save
(
resources
);
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
public
void
delete
(
Long
id
)
{
dictDetailRepository
.
deleteById
(
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
;
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.domain.Dict
;
import
me.zhengjie.modules.system.service.dto.DictDetailDTO
;
import
me.zhengjie.modules.system.service.dto.DictQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.DictQueryCriteria
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
me.zhengjie.utils.ValidationUtil
;
...
@@ -9,60 +12,109 @@ import me.zhengjie.modules.system.repository.DictRepository;
...
@@ -9,60 +12,109 @@ import me.zhengjie.modules.system.repository.DictRepository;
import
me.zhengjie.modules.system.service.DictService
;
import
me.zhengjie.modules.system.service.DictService
;
import
me.zhengjie.modules.system.service.dto.DictDTO
;
import
me.zhengjie.modules.system.service.dto.DictDTO
;
import
me.zhengjie.modules.system.service.mapper.DictMapper
;
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.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
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
* @author Zheng Jie
* @date 2019-04-10
* @date 2019-04-10
*/
*/
@Service
@Service
@CacheConfig
(
cacheNames
=
"dict"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DictServiceImpl
implements
DictService
{
public
class
DictServiceImpl
implements
DictService
{
@Autowired
private
final
DictRepository
dictRepository
;
private
DictRepository
dictRepository
;
private
final
DictMapper
dictMapper
;
@Autowired
public
DictServiceImpl
(
DictRepository
dictRepository
,
DictMapper
dictMapper
)
{
private
DictMapper
dictMapper
;
this
.
dictRepository
=
dictRepository
;
this
.
dictMapper
=
dictMapper
;
}
@Override
@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
);
Page
<
Dict
>
page
=
dictRepository
.
findAll
((
root
,
query
,
cb
)
->
QueryHelp
.
getPredicate
(
root
,
dict
,
cb
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
dictMapper:
:
toDto
));
return
PageUtil
.
toPage
(
page
.
map
(
dictMapper:
:
toDto
));
}
}
@Override
@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
)
{
public
DictDTO
findById
(
Long
id
)
{
Optional
<
Dict
>
dict
=
dictRepository
.
findById
(
id
);
Dict
dict
=
dictRepository
.
findById
(
id
)
.
orElseGet
(
Dict:
:
new
)
;
ValidationUtil
.
isNull
(
dict
,
"Dict"
,
"id"
,
id
);
ValidationUtil
.
isNull
(
dict
.
getId
()
,
"Dict"
,
"id"
,
id
);
return
dictMapper
.
toDto
(
dict
.
get
()
);
return
dictMapper
.
toDto
(
dict
);
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DictDTO
create
(
Dict
resources
)
{
public
DictDTO
create
(
Dict
resources
)
{
return
dictMapper
.
toDto
(
dictRepository
.
save
(
resources
));
return
dictMapper
.
toDto
(
dictRepository
.
save
(
resources
));
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Dict
resources
)
{
public
void
update
(
Dict
resources
)
{
Optional
<
Dict
>
optionalDict
=
dictRepository
.
findById
(
resources
.
getId
());
Dict
dict
=
dictRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Dict:
:
new
);
ValidationUtil
.
isNull
(
optionalDict
,
"Dict"
,
"id"
,
resources
.
getId
());
ValidationUtil
.
isNull
(
dict
.
getId
(),
"Dict"
,
"id"
,
resources
.
getId
());
Dict
dict
=
optionalDict
.
get
();
resources
.
setId
(
dict
.
getId
());
resources
.
setId
(
dict
.
getId
());
dictRepository
.
save
(
resources
);
dictRepository
.
save
(
resources
);
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
public
void
delete
(
Long
id
)
{
dictRepository
.
deleteById
(
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;
...
@@ -3,6 +3,7 @@ package me.zhengjie.modules.system.service.impl;
import
me.zhengjie.modules.system.domain.Job
;
import
me.zhengjie.modules.system.domain.Job
;
import
me.zhengjie.modules.system.repository.DeptRepository
;
import
me.zhengjie.modules.system.repository.DeptRepository
;
import
me.zhengjie.modules.system.service.dto.JobQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.JobQueryCriteria
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
me.zhengjie.utils.ValidationUtil
;
...
@@ -10,35 +11,46 @@ import me.zhengjie.modules.system.repository.JobRepository;
...
@@ -10,35 +11,46 @@ import me.zhengjie.modules.system.repository.JobRepository;
import
me.zhengjie.modules.system.service.JobService
;
import
me.zhengjie.modules.system.service.JobService
;
import
me.zhengjie.modules.system.service.dto.JobDTO
;
import
me.zhengjie.modules.system.service.dto.JobDTO
;
import
me.zhengjie.modules.system.service.mapper.JobMapper
;
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.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.
Optional
;
import
java.util.
Map
;
/**
/**
* @author Zheng Jie
* @author Zheng Jie
* @date 2019-03-29
* @date 2019-03-29
*/
*/
@Service
@Service
@CacheConfig
(
cacheNames
=
"job"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
JobServiceImpl
implements
JobService
{
public
class
JobServiceImpl
implements
JobService
{
@Autowired
private
final
JobRepository
jobRepository
;
private
JobRepository
jobRepository
;
private
final
JobMapper
jobMapper
;
@Autowired
private
final
DeptRepository
deptRepository
;
private
JobMapper
jobMapper
;
@Autowired
public
JobServiceImpl
(
JobRepository
jobRepository
,
JobMapper
jobMapper
,
DeptRepository
deptRepository
)
{
private
DeptRepository
deptRepository
;
this
.
jobRepository
=
jobRepository
;
this
.
jobMapper
=
jobMapper
;
this
.
deptRepository
=
deptRepository
;
}
@Override
@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
);
Page
<
Job
>
page
=
jobRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
List
<
JobDTO
>
jobs
=
new
ArrayList
<>();
List
<
JobDTO
>
jobs
=
new
ArrayList
<>();
for
(
Job
job
:
page
.
getContent
())
{
for
(
Job
job
:
page
.
getContent
())
{
...
@@ -48,32 +60,55 @@ public class JobServiceImpl implements JobService {
...
@@ -48,32 +60,55 @@ public class JobServiceImpl implements JobService {
}
}
@Override
@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
)
{
public
JobDTO
findById
(
Long
id
)
{
Optional
<
Job
>
job
=
jobRepository
.
findById
(
id
);
Job
job
=
jobRepository
.
findById
(
id
)
.
orElseGet
(
Job:
:
new
)
;
ValidationUtil
.
isNull
(
job
,
"Job"
,
"id"
,
id
);
ValidationUtil
.
isNull
(
job
.
getId
()
,
"Job"
,
"id"
,
id
);
return
jobMapper
.
toDto
(
job
.
get
()
);
return
jobMapper
.
toDto
(
job
);
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
JobDTO
create
(
Job
resources
)
{
public
JobDTO
create
(
Job
resources
)
{
return
jobMapper
.
toDto
(
jobRepository
.
save
(
resources
));
return
jobMapper
.
toDto
(
jobRepository
.
save
(
resources
));
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Job
resources
)
{
public
void
update
(
Job
resources
)
{
Optional
<
Job
>
optionalJob
=
jobRepository
.
findById
(
resources
.
getId
());
Job
job
=
jobRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Job:
:
new
);
ValidationUtil
.
isNull
(
optionalJob
,
"Job"
,
"id"
,
resources
.
getId
());
ValidationUtil
.
isNull
(
job
.
getId
(),
"Job"
,
"id"
,
resources
.
getId
());
Job
job
=
optionalJob
.
get
();
resources
.
setId
(
job
.
getId
());
resources
.
setId
(
job
.
getId
());
jobRepository
.
save
(
resources
);
jobRepository
.
save
(
resources
);
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
public
void
delete
(
Long
id
)
{
jobRepository
.
deleteById
(
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
;
package
me.zhengjie.modules.system.service.impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
me.zhengjie.modules.system.domain.Menu
;
import
me.zhengjie.modules.system.domain.Menu
;
import
me.zhengjie.modules.system.domain.vo.MenuMetaVo
;
import
me.zhengjie.modules.system.domain.vo.MenuMetaVo
;
...
@@ -15,52 +14,66 @@ import me.zhengjie.modules.system.service.dto.MenuDTO;
...
@@ -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.MenuQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.RoleSmallDTO
;
import
me.zhengjie.modules.system.service.dto.RoleSmallDTO
;
import
me.zhengjie.modules.system.service.mapper.MenuMapper
;
import
me.zhengjie.modules.system.service.mapper.MenuMapper
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.StringUtils
;
import
me.zhengjie.utils.StringUtils
;
import
me.zhengjie.utils.ValidationUtil
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Service
@Service
@CacheConfig
(
cacheNames
=
"menu"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
MenuServiceImpl
implements
MenuService
{
public
class
MenuServiceImpl
implements
MenuService
{
@Autowired
private
final
MenuRepository
menuRepository
;
private
MenuRepository
menuRepository
;
@Autowired
private
final
MenuMapper
menuMapper
;
private
MenuMapper
menuMapper
;
@Autowired
private
final
RoleService
roleService
;
private
RoleService
roleService
;
public
MenuServiceImpl
(
MenuRepository
menuRepository
,
MenuMapper
menuMapper
,
RoleService
roleService
)
{
this
.
menuRepository
=
menuRepository
;
this
.
menuMapper
=
menuMapper
;
this
.
roleService
=
roleService
;
}
@Override
@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
)));
return
menuMapper
.
toDto
(
menuRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
}
}
@Override
@Override
@Cacheable
(
key
=
"#p0"
)
public
MenuDTO
findById
(
long
id
)
{
public
MenuDTO
findById
(
long
id
)
{
Optional
<
Menu
>
menu
=
menuRepository
.
findById
(
id
);
Menu
menu
=
menuRepository
.
findById
(
id
)
.
orElseGet
(
Menu:
:
new
)
;
ValidationUtil
.
isNull
(
menu
,
"Menu"
,
"id"
,
id
);
ValidationUtil
.
isNull
(
menu
.
getId
()
,
"Menu"
,
"id"
,
id
);
return
menuMapper
.
toDto
(
menu
.
get
()
);
return
menuMapper
.
toDto
(
menu
);
}
}
@Override
@Override
public
List
<
MenuDTO
>
findByRoles
(
List
<
RoleSmallDTO
>
roles
)
{
public
List
<
MenuDTO
>
findByRoles
(
List
<
RoleSmallDTO
>
roles
)
{
Set
<
Menu
>
menus
=
new
LinkedHashSet
<>();
Set
<
Menu
>
menus
=
new
LinkedHashSet
<>();
for
(
RoleSmallDTO
role
:
roles
)
{
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
);
menus
.
addAll
(
menus1
);
}
}
return
menus
.
stream
().
map
(
menuMapper:
:
toDto
).
collect
(
Collectors
.
toList
());
return
menus
.
stream
().
map
(
menuMapper:
:
toDto
).
collect
(
Collectors
.
toList
());
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
public
MenuDTO
create
(
Menu
resources
)
{
public
MenuDTO
create
(
Menu
resources
)
{
if
(
menuRepository
.
findByName
(
resources
.
getName
())
!=
null
){
if
(
menuRepository
.
findByName
(
resources
.
getName
())
!=
null
){
throw
new
EntityExistException
(
Menu
.
class
,
"name"
,
resources
.
getName
());
throw
new
EntityExistException
(
Menu
.
class
,
"name"
,
resources
.
getName
());
...
@@ -79,19 +92,19 @@ public class MenuServiceImpl implements MenuService {
...
@@ -79,19 +92,19 @@ public class MenuServiceImpl implements MenuService {
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
public
void
update
(
Menu
resources
)
{
public
void
update
(
Menu
resources
)
{
if
(
resources
.
getId
().
equals
(
resources
.
getPid
()))
{
if
(
resources
.
getId
().
equals
(
resources
.
getPid
()))
{
throw
new
BadRequestException
(
"上级不能为自己"
);
throw
new
BadRequestException
(
"上级不能为自己"
);
}
}
Optional
<
Menu
>
optionalPermission
=
menuRepository
.
findById
(
resources
.
getId
());
Menu
menu
=
menuRepository
.
findById
(
resources
.
getId
())
.
orElseGet
(
Menu:
:
new
)
;
ValidationUtil
.
isNull
(
optionalPermission
,
"Permission"
,
"id"
,
resources
.
getId
());
ValidationUtil
.
isNull
(
menu
.
getId
()
,
"Permission"
,
"id"
,
resources
.
getId
());
if
(
resources
.
getIFrame
()){
if
(
resources
.
getIFrame
()){
if
(!(
resources
.
getPath
().
toLowerCase
().
startsWith
(
"http://"
)||
resources
.
getPath
().
toLowerCase
().
startsWith
(
"https://"
)))
{
if
(!(
resources
.
getPath
().
toLowerCase
().
startsWith
(
"http://"
)||
resources
.
getPath
().
toLowerCase
().
startsWith
(
"https://"
)))
{
throw
new
BadRequestException
(
"外链必须以http://或者https://开头"
);
throw
new
BadRequestException
(
"外链必须以http://或者https://开头"
);
}
}
}
}
Menu
menu
=
optionalPermission
.
get
();
Menu
menu1
=
menuRepository
.
findByName
(
resources
.
getName
());
Menu
menu1
=
menuRepository
.
findByName
(
resources
.
getName
());
if
(
menu1
!=
null
&&
!
menu1
.
getId
().
equals
(
menu
.
getId
())){
if
(
menu1
!=
null
&&
!
menu1
.
getId
().
equals
(
menu
.
getId
())){
...
@@ -114,6 +127,8 @@ public class MenuServiceImpl implements MenuService {
...
@@ -114,6 +127,8 @@ public class MenuServiceImpl implements MenuService {
menu
.
setCache
(
resources
.
getCache
());
menu
.
setCache
(
resources
.
getCache
());
menu
.
setHidden
(
resources
.
getHidden
());
menu
.
setHidden
(
resources
.
getHidden
());
menu
.
setComponentName
(
resources
.
getComponentName
());
menu
.
setComponentName
(
resources
.
getComponentName
());
menu
.
setPermission
(
resources
.
getPermission
());
menu
.
setType
(
resources
.
getType
());
menuRepository
.
save
(
menu
);
menuRepository
.
save
(
menu
);
}
}
...
@@ -131,6 +146,7 @@ public class MenuServiceImpl implements MenuService {
...
@@ -131,6 +146,7 @@ public class MenuServiceImpl implements MenuService {
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@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
)
{
...
@@ -140,6 +156,7 @@ public class MenuServiceImpl implements MenuService {
...
@@ -140,6 +156,7 @@ public class MenuServiceImpl implements MenuService {
}
}
@Override
@Override
@Cacheable
(
key
=
"'tree'"
)
public
Object
getMenuTree
(
List
<
Menu
>
menus
)
{
public
Object
getMenuTree
(
List
<
Menu
>
menus
)
{
List
<
Map
<
String
,
Object
>>
list
=
new
LinkedList
<>();
List
<
Map
<
String
,
Object
>>
list
=
new
LinkedList
<>();
menus
.
forEach
(
menu
->
{
menus
.
forEach
(
menu
->
{
...
@@ -159,13 +176,14 @@ public class MenuServiceImpl implements MenuService {
...
@@ -159,13 +176,14 @@ public class MenuServiceImpl implements MenuService {
}
}
@Override
@Override
@Cacheable
(
key
=
"'pid:'+#p0"
)
public
List
<
Menu
>
findByPid
(
long
pid
)
{
public
List
<
Menu
>
findByPid
(
long
pid
)
{
return
menuRepository
.
findByPid
(
pid
);
return
menuRepository
.
findByPid
(
pid
);
}
}
@Override
@Override
public
Map
buildTree
(
List
<
MenuDTO
>
menuDTOS
)
{
public
Map
<
String
,
Object
>
buildTree
(
List
<
MenuDTO
>
menuDTOS
)
{
List
<
MenuDTO
>
trees
=
new
ArrayList
<
MenuDTO
>();
List
<
MenuDTO
>
trees
=
new
ArrayList
<>();
Set
<
Long
>
ids
=
new
HashSet
<>();
Set
<
Long
>
ids
=
new
HashSet
<>();
for
(
MenuDTO
menuDTO
:
menuDTOS
)
{
for
(
MenuDTO
menuDTO
:
menuDTOS
)
{
if
(
menuDTO
.
getPid
()
==
0
)
{
if
(
menuDTO
.
getPid
()
==
0
)
{
...
@@ -174,19 +192,19 @@ public class MenuServiceImpl implements MenuService {
...
@@ -174,19 +192,19 @@ public class MenuServiceImpl implements MenuService {
for
(
MenuDTO
it
:
menuDTOS
)
{
for
(
MenuDTO
it
:
menuDTOS
)
{
if
(
it
.
getPid
().
equals
(
menuDTO
.
getId
()))
{
if
(
it
.
getPid
().
equals
(
menuDTO
.
getId
()))
{
if
(
menuDTO
.
getChildren
()
==
null
)
{
if
(
menuDTO
.
getChildren
()
==
null
)
{
menuDTO
.
setChildren
(
new
ArrayList
<
MenuDTO
>());
menuDTO
.
setChildren
(
new
ArrayList
<>());
}
}
menuDTO
.
getChildren
().
add
(
it
);
menuDTO
.
getChildren
().
add
(
it
);
ids
.
add
(
it
.
getId
());
ids
.
add
(
it
.
getId
());
}
}
}
}
}
}
Map
map
=
new
HashMap
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>
();
if
(
trees
.
size
()
==
0
){
if
(
trees
.
size
()
==
0
){
trees
=
menuDTOS
.
stream
().
filter
(
s
->
!
ids
.
contains
(
s
.
getId
())).
collect
(
Collectors
.
toList
());
trees
=
menuDTOS
.
stream
().
filter
(
s
->
!
ids
.
contains
(
s
.
getId
())).
collect
(
Collectors
.
toList
());
}
}
map
.
put
(
"content"
,
trees
);
map
.
put
(
"content"
,
trees
);
map
.
put
(
"totalElements"
,
menuDTOS
!=
null
?
menuDTOS
.
size
()
:
0
);
map
.
put
(
"totalElements"
,
menuDTOS
.
size
());
return
map
;
return
map
;
}
}
...
@@ -229,7 +247,7 @@ public class MenuServiceImpl implements MenuService {
...
@@ -229,7 +247,7 @@ public class MenuServiceImpl implements MenuService {
menuVo
.
setName
(
null
);
menuVo
.
setName
(
null
);
menuVo
.
setMeta
(
null
);
menuVo
.
setMeta
(
null
);
menuVo
.
setComponent
(
"Layout"
);
menuVo
.
setComponent
(
"Layout"
);
List
<
MenuVo
>
list1
=
new
ArrayList
<
MenuVo
>();
List
<
MenuVo
>
list1
=
new
ArrayList
<>();
list1
.
add
(
menuVo1
);
list1
.
add
(
menuVo1
);
menuVo
.
setChildren
(
list1
);
menuVo
.
setChildren
(
list1
);
}
}
...
@@ -242,8 +260,25 @@ public class MenuServiceImpl implements MenuService {
...
@@ -242,8 +260,25 @@ public class MenuServiceImpl implements MenuService {
@Override
@Override
public
Menu
findOne
(
Long
id
)
{
public
Menu
findOne
(
Long
id
)
{
Optional
<
Menu
>
menu
=
menuRepository
.
findById
(
id
);
Menu
menu
=
menuRepository
.
findById
(
id
).
orElseGet
(
Menu:
:
new
);
ValidationUtil
.
isNull
(
menu
,
"Menu"
,
"id"
,
id
);
ValidationUtil
.
isNull
(
menu
.
getId
(),
"Menu"
,
"id"
,
id
);
return
menu
.
get
();
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;
...
@@ -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.dto.RoleSmallDTO
;
import
me.zhengjie.modules.system.service.mapper.RoleMapper
;
import
me.zhengjie.modules.system.service.mapper.RoleMapper
;
import
me.zhengjie.modules.system.service.mapper.RoleSmallMapper
;
import
me.zhengjie.modules.system.service.mapper.RoleSmallMapper
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
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.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -26,42 +32,51 @@ import java.util.stream.Collectors;
...
@@ -26,42 +32,51 @@ import java.util.stream.Collectors;
* @date 2018-12-03
* @date 2018-12-03
*/
*/
@Service
@Service
@CacheConfig
(
cacheNames
=
"role"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
RoleServiceImpl
implements
RoleService
{
public
class
RoleServiceImpl
implements
RoleService
{
@Autowired
private
final
RoleRepository
roleRepository
;
private
RoleRepository
roleRepository
;
private
final
RoleMapper
roleMapper
;
@Autowired
private
final
RoleSmallMapper
roleSmallMapper
;
private
RoleMapper
roleMapper
;
@Autowired
public
RoleServiceImpl
(
RoleRepository
roleRepository
,
RoleMapper
roleMapper
,
RoleSmallMapper
roleSmallMapper
)
{
private
RoleSmallMapper
roleSmallMapper
;
this
.
roleRepository
=
roleRepository
;
this
.
roleMapper
=
roleMapper
;
this
.
roleSmallMapper
=
roleSmallMapper
;
}
@Override
@Override
@Cacheable
public
Object
queryAll
(
Pageable
pageable
)
{
public
Object
queryAll
(
Pageable
pageable
)
{
return
roleMapper
.
toDto
(
roleRepository
.
findAll
(
pageable
).
getContent
());
return
roleMapper
.
toDto
(
roleRepository
.
findAll
(
pageable
).
getContent
());
}
}
@Override
@Override
@Cacheable
public
List
<
RoleDTO
>
queryAll
(
RoleQueryCriteria
criteria
)
{
public
List
<
RoleDTO
>
queryAll
(
RoleQueryCriteria
criteria
)
{
return
roleMapper
.
toDto
(
roleRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
return
roleMapper
.
toDto
(
roleRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
}
}
@Override
@Override
@Cacheable
public
Object
queryAll
(
RoleQueryCriteria
criteria
,
Pageable
pageable
)
{
public
Object
queryAll
(
RoleQueryCriteria
criteria
,
Pageable
pageable
)
{
Page
<
Role
>
page
=
roleRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
Page
<
Role
>
page
=
roleRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
roleMapper:
:
toDto
));
return
PageUtil
.
toPage
(
page
.
map
(
roleMapper:
:
toDto
));
}
}
@Override
@Override
@Cacheable
(
key
=
"#p0"
)
public
RoleDTO
findById
(
long
id
)
{
public
RoleDTO
findById
(
long
id
)
{
Optional
<
Role
>
role
=
roleRepository
.
findById
(
id
);
Role
role
=
roleRepository
.
findById
(
id
)
.
orElseGet
(
Role:
:
new
)
;
ValidationUtil
.
isNull
(
role
,
"Role"
,
"id"
,
id
);
ValidationUtil
.
isNull
(
role
.
getId
()
,
"Role"
,
"id"
,
id
);
return
roleMapper
.
toDto
(
role
.
get
()
);
return
roleMapper
.
toDto
(
role
);
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
RoleDTO
create
(
Role
resources
)
{
public
RoleDTO
create
(
Role
resources
)
{
if
(
roleRepository
.
findByName
(
resources
.
getName
())
!=
null
){
if
(
roleRepository
.
findByName
(
resources
.
getName
())
!=
null
){
...
@@ -71,13 +86,11 @@ public class RoleServiceImpl implements RoleService {
...
@@ -71,13 +86,11 @@ public class RoleServiceImpl implements RoleService {
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Role
resources
)
{
public
void
update
(
Role
resources
)
{
Role
role
=
roleRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Role:
:
new
);
Optional
<
Role
>
optionalRole
=
roleRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
role
.
getId
(),
"Role"
,
"id"
,
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalRole
,
"Role"
,
"id"
,
resources
.
getId
());
Role
role
=
optionalRole
.
get
();
Role
role1
=
roleRepository
.
findByName
(
resources
.
getName
());
Role
role1
=
roleRepository
.
findByName
(
resources
.
getName
());
...
@@ -94,13 +107,7 @@ public class RoleServiceImpl implements RoleService {
...
@@ -94,13 +107,7 @@ public class RoleServiceImpl implements RoleService {
}
}
@Override
@Override
public
void
updatePermission
(
Role
resources
,
RoleDTO
roleDTO
)
{
@CacheEvict
(
allEntries
=
true
)
Role
role
=
roleMapper
.
toEntity
(
roleDTO
);
role
.
setPermissions
(
resources
.
getPermissions
());
roleRepository
.
save
(
role
);
}
@Override
public
void
updateMenu
(
Role
resources
,
RoleDTO
roleDTO
)
{
public
void
updateMenu
(
Role
resources
,
RoleDTO
roleDTO
)
{
Role
role
=
roleMapper
.
toEntity
(
roleDTO
);
Role
role
=
roleMapper
.
toEntity
(
roleDTO
);
role
.
setMenus
(
resources
.
getMenus
());
role
.
setMenus
(
resources
.
getMenus
());
...
@@ -108,29 +115,27 @@ public class RoleServiceImpl implements RoleService {
...
@@ -108,29 +115,27 @@ public class RoleServiceImpl implements RoleService {
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
untiedMenu
(
Long
id
)
{
public
void
untiedMenu
(
Long
id
)
{
roleRepository
.
untiedMenu
(
id
);
roleRepository
.
untiedMenu
(
id
);
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@CacheEvict
(
allEntries
=
true
)
public
void
untiedPermission
(
Long
id
)
{
roleRepository
.
untiedPermission
(
id
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
public
void
delete
(
Long
id
)
{
roleRepository
.
deleteById
(
id
);
roleRepository
.
deleteById
(
id
);
}
}
@Override
@Override
@Cacheable
(
key
=
"'findByUsers_Id:' + #p0"
)
public
List
<
RoleSmallDTO
>
findByUsers_Id
(
Long
id
)
{
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
@Override
@Cacheable
public
Integer
findByRoles
(
Set
<
Role
>
roles
)
{
public
Integer
findByRoles
(
Set
<
Role
>
roles
)
{
Set
<
RoleDTO
>
roleDTOS
=
new
HashSet
<>();
Set
<
RoleDTO
>
roleDTOS
=
new
HashSet
<>();
for
(
Role
role
:
roles
)
{
for
(
Role
role
:
roles
)
{
...
@@ -138,4 +143,19 @@ public class RoleServiceImpl implements RoleService {
...
@@ -138,4 +143,19 @@ public class RoleServiceImpl implements RoleService {
}
}
return
Collections
.
min
(
roleDTOS
.
stream
().
map
(
RoleDTO:
:
getLevel
).
collect
(
Collectors
.
toList
()));
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
;
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.monitor.service.RedisService
;
import
me.zhengjie.modules.system.domain.User
;
import
me.zhengjie.modules.system.domain.User
;
import
me.zhengjie.exception.EntityExistException
;
import
me.zhengjie.exception.EntityExistException
;
...
@@ -16,16 +13,16 @@ import me.zhengjie.modules.system.service.dto.UserDTO;
...
@@ -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.dto.UserQueryCriteria
;
import
me.zhengjie.modules.system.service.mapper.UserMapper
;
import
me.zhengjie.modules.system.service.mapper.UserMapper
;
import
me.zhengjie.utils.*
;
import
me.zhengjie.utils.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
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.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.IOException
;
...
@@ -37,44 +34,52 @@ import java.util.stream.Collectors;
...
@@ -37,44 +34,52 @@ import java.util.stream.Collectors;
* @date 2018-11-23
* @date 2018-11-23
*/
*/
@Service
@Service
@CacheConfig
(
cacheNames
=
"user"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
UserServiceImpl
implements
UserService
{
public
class
UserServiceImpl
implements
UserService
{
@Autowired
private
final
UserRepository
userRepository
;
private
UserRepository
userRepository
;
@Autowired
private
final
UserMapper
userMapper
;
private
UserMapper
userMapper
;
@Autowired
private
final
RedisService
redisService
;
private
RedisService
redisService
;
@Autowired
private
final
UserAvatarRepository
userAvatarRepository
;
private
UserAvatarRepository
userAvatarRepository
;
@Value
(
"${file.avatar}"
)
@Value
(
"${file.avatar}"
)
private
String
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
@Override
@Cacheable
public
Object
queryAll
(
UserQueryCriteria
criteria
,
Pageable
pageable
)
{
public
Object
queryAll
(
UserQueryCriteria
criteria
,
Pageable
pageable
)
{
Page
<
User
>
page
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
Page
<
User
>
page
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
userMapper:
:
toDto
));
return
PageUtil
.
toPage
(
page
.
map
(
userMapper:
:
toDto
));
}
}
@Override
@Override
@Cacheable
public
List
<
UserDTO
>
queryAll
(
UserQueryCriteria
criteria
)
{
public
List
<
UserDTO
>
queryAll
(
UserQueryCriteria
criteria
)
{
List
<
User
>
users
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
));
List
<
User
>
users
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
));
return
userMapper
.
toDto
(
users
);
return
userMapper
.
toDto
(
users
);
}
}
@Override
@Override
@Cacheable
(
key
=
"#p0"
)
public
UserDTO
findById
(
long
id
)
{
public
UserDTO
findById
(
long
id
)
{
Optional
<
User
>
user
=
userRepository
.
findById
(
id
);
User
user
=
userRepository
.
findById
(
id
)
.
orElseGet
(
User:
:
new
)
;
ValidationUtil
.
isNull
(
user
,
"User"
,
"id"
,
id
);
ValidationUtil
.
isNull
(
user
.
getId
()
,
"User"
,
"id"
,
id
);
return
userMapper
.
toDto
(
user
.
get
()
);
return
userMapper
.
toDto
(
user
);
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
UserDTO
create
(
User
resources
)
{
public
UserDTO
create
(
User
resources
)
{
...
@@ -92,13 +97,11 @@ public class UserServiceImpl implements UserService {
...
@@ -92,13 +97,11 @@ public class UserServiceImpl implements UserService {
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
User
resources
)
{
public
void
update
(
User
resources
)
{
Optional
<
User
>
userOptional
=
userRepository
.
findById
(
resources
.
getId
());
User
user
=
userRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
User:
:
new
);
ValidationUtil
.
isNull
(
userOptional
,
"User"
,
"id"
,
resources
.
getId
());
ValidationUtil
.
isNull
(
user
.
getId
(),
"User"
,
"id"
,
resources
.
getId
());
User
user
=
userOptional
.
get
();
User
user1
=
userRepository
.
findByUsername
(
user
.
getUsername
());
User
user1
=
userRepository
.
findByUsername
(
user
.
getUsername
());
User
user2
=
userRepository
.
findByEmail
(
user
.
getEmail
());
User
user2
=
userRepository
.
findByEmail
(
user
.
getEmail
());
...
@@ -129,14 +132,16 @@ public class UserServiceImpl implements UserService {
...
@@ -129,14 +132,16 @@ public class UserServiceImpl implements UserService {
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
public
void
delete
(
Long
id
)
{
userRepository
.
deleteById
(
id
);
userRepository
.
deleteById
(
id
);
}
}
@Override
@Override
@Cacheable
(
key
=
"'loadUserByUsername:'+#p0"
)
public
UserDTO
findByName
(
String
userName
)
{
public
UserDTO
findByName
(
String
userName
)
{
User
user
=
null
;
User
user
;
if
(
ValidationUtil
.
isEmail
(
userName
)){
if
(
ValidationUtil
.
isEmail
(
userName
)){
user
=
userRepository
.
findByEmail
(
userName
);
user
=
userRepository
.
findByEmail
(
userName
);
}
else
{
}
else
{
...
@@ -150,12 +155,14 @@ public class UserServiceImpl implements UserService {
...
@@ -150,12 +155,14 @@ public class UserServiceImpl implements UserService {
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updatePass
(
String
username
,
String
pass
)
{
public
void
updatePass
(
String
username
,
String
pass
)
{
userRepository
.
updatePass
(
username
,
pass
,
new
Date
());
userRepository
.
updatePass
(
username
,
pass
,
new
Date
());
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateAvatar
(
MultipartFile
multipartFile
)
{
public
void
updateAvatar
(
MultipartFile
multipartFile
)
{
User
user
=
userRepository
.
findByUsername
(
SecurityUtils
.
getUsername
());
User
user
=
userRepository
.
findByUsername
(
SecurityUtils
.
getUsername
());
...
@@ -165,6 +172,7 @@ public class UserServiceImpl implements UserService {
...
@@ -165,6 +172,7 @@ public class UserServiceImpl implements UserService {
oldPath
=
userAvatar
.
getPath
();
oldPath
=
userAvatar
.
getPath
();
}
}
File
file
=
FileUtil
.
upload
(
multipartFile
,
avatar
);
File
file
=
FileUtil
.
upload
(
multipartFile
,
avatar
);
assert
file
!=
null
;
userAvatar
=
userAvatarRepository
.
save
(
new
UserAvatar
(
userAvatar
,
file
.
getName
(),
file
.
getPath
(),
FileUtil
.
getSize
(
multipartFile
.
getSize
())));
userAvatar
=
userAvatarRepository
.
save
(
new
UserAvatar
(
userAvatar
,
file
.
getName
(),
file
.
getPath
(),
FileUtil
.
getSize
(
multipartFile
.
getSize
())));
user
.
setUserAvatar
(
userAvatar
);
user
.
setUserAvatar
(
userAvatar
);
userRepository
.
save
(
user
);
userRepository
.
save
(
user
);
...
@@ -174,6 +182,7 @@ public class UserServiceImpl implements UserService {
...
@@ -174,6 +182,7 @@ public class UserServiceImpl implements UserService {
}
}
@Override
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateEmail
(
String
username
,
String
email
)
{
public
void
updateEmail
(
String
username
,
String
email
)
{
userRepository
.
updateEmail
(
username
,
email
);
userRepository
.
updateEmail
(
username
,
email
);
...
@@ -184,7 +193,7 @@ public class UserServiceImpl implements UserService {
...
@@ -184,7 +193,7 @@ public class UserServiceImpl implements UserService {
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
UserDTO
userDTO
:
queryAll
)
{
for
(
UserDTO
userDTO
:
queryAll
)
{
List
roles
=
userDTO
.
getRoles
().
stream
().
map
(
RoleSmallDTO:
:
getName
).
collect
(
Collectors
.
toList
());
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
.
getUsername
());
map
.
put
(
"头像"
,
userDTO
.
getAvatar
());
map
.
put
(
"头像"
,
userDTO
.
getAvatar
());
map
.
put
(
"邮箱"
,
userDTO
.
getEmail
());
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