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
7eba9641
"vscode:/vscode.git/clone" did not exist on "4f6fa863476e14832124a66b04eefa41f0b11ab8"
Commit
7eba9641
authored
Jun 04, 2019
by
zhengjie
Browse files
去除实时控制台功能,查询方式修改成注解方式
parent
e6c23f81
Changes
76
Hide whitespace changes
Inline
Side-by-side
eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java
View file @
7eba9641
...
...
@@ -2,11 +2,13 @@ package me.zhengjie.modules.system.service;
import
me.zhengjie.modules.system.domain.Menu
;
import
me.zhengjie.modules.system.domain.Role
;
import
me.zhengjie.modules.system.service.dto.CommonQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.RoleDTO
;
import
me.zhengjie.modules.system.service.dto.RoleSmallDTO
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.data.domain.Pageable
;
import
java.util.List
;
import
java.util.Set
;
...
...
@@ -78,4 +80,19 @@ public interface RoleService {
@CacheEvict
(
allEntries
=
true
)
void
untiedMenu
(
Menu
menu
);
/**
* queryAll
* @param pageable
* @return
*/
Object
queryAll
(
Pageable
pageable
);
/**
* queryAll
* @param pageable
* @param criteria
* @return
*/
Object
queryAll
(
CommonQueryCriteria
criteria
,
Pageable
pageable
);
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java
View file @
7eba9641
...
...
@@ -3,9 +3,11 @@ package me.zhengjie.modules.system.service;
import
me.zhengjie.modules.system.domain.User
;
import
me.zhengjie.modules.security.security.JwtUser
;
import
me.zhengjie.modules.system.service.dto.UserDTO
;
import
me.zhengjie.modules.system.service.dto.UserQueryCriteria
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.data.domain.Pageable
;
/**
* @author jie
...
...
@@ -75,4 +77,7 @@ public interface UserService {
*/
@CacheEvict
(
allEntries
=
true
)
void
updateEmail
(
String
username
,
String
email
);
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
Object
queryAll
(
UserQueryCriteria
criteria
,
Pageable
pageable
);
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/CommonQueryCriteria.java
0 → 100644
View file @
7eba9641
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
/**
* 公共查询类
*/
@Data
public
class
CommonQueryCriteria
{
@Query
(
type
=
Query
.
Type
.
INNER_LIKE
)
private
String
name
;
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DeptQueryCriteria.java
0 → 100644
View file @
7eba9641
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
import
java.util.Set
;
/**
* @author jie
* @date 2019-03-25
*/
@Data
public
class
DeptQueryCriteria
{
@Query
(
type
=
Query
.
Type
.
IN
,
propName
=
"id"
)
private
Set
<
Long
>
ids
;
@Query
(
type
=
Query
.
Type
.
INNER_LIKE
)
private
String
name
;
@Query
private
Boolean
enabled
;
@Query
private
Long
pid
;
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictDTO.java
View file @
7eba9641
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
me.zhengjie.annotation.
PredicateInfo
;
import
me.zhengjie.annotation.
Query
;
import
java.io.Serializable
;
...
...
@@ -17,12 +17,12 @@ public class DictDTO implements Serializable {
/**
* 字典名称
*/
@
PredicateInfo
(
q
uery
T
ype
=
PredicateInfo
.
QueryType
.
INNER_LIKE
)
@
Q
uery
(
t
ype
=
Query
.
Type
.
INNER_LIKE
)
private
String
name
;
/**
* 描述
*/
@
PredicateInfo
(
q
uery
T
ype
=
PredicateInfo
.
QueryType
.
INNER_LIKE
)
@
Q
uery
(
t
ype
=
Query
.
Type
.
INNER_LIKE
)
private
String
remark
;
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictDetailQueryCriteria.java
0 → 100644
View file @
7eba9641
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
/**
* @author jie
* @date 2019-04-10
*/
@Data
public
class
DictDetailQueryCriteria
{
@Query
(
type
=
Query
.
Type
.
INNER_LIKE
)
private
String
label
;
@Query
(
propName
=
"name"
,
joinName
=
"dict"
)
private
String
dictName
;
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/JobQueryCriteria.java
0 → 100644
View file @
7eba9641
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
me.zhengjie.annotation.Query
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.Set
;
/**
* @author jie
* @date 2019-6-4 14:49:34
*/
@Data
@NoArgsConstructor
public
class
JobQueryCriteria
{
@Query
(
type
=
Query
.
Type
.
INNER_LIKE
)
private
String
name
;
@Query
private
Boolean
enabled
;
@Query
(
propName
=
"id"
,
joinName
=
"dept"
)
private
Long
deptId
;
@Query
(
propName
=
"id"
,
joinName
=
"dept"
,
type
=
Query
.
Type
.
IN
)
private
Set
<
Long
>
deptIds
;
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleQueryCriteria.java
0 → 100644
View file @
7eba9641
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
/**
* @author jie
* @date 2018-11-23
*/
@Data
public
class
RoleQueryCriteria
{
@Query
(
type
=
Query
.
Type
.
INNER_LIKE
)
private
String
name
;
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserQueryCriteria.java
0 → 100644
View file @
7eba9641
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
import
java.io.Serializable
;
import
java.util.Set
;
/**
* @author jie
* @date 2018-11-23
*/
@Data
public
class
UserQueryCriteria
implements
Serializable
{
@Query
private
Long
id
;
@Query
(
propName
=
"id"
,
type
=
Query
.
Type
.
IN
,
joinName
=
"dept"
)
private
Set
<
Long
>
deptIds
;
@Query
(
type
=
Query
.
Type
.
INNER_LIKE
)
private
String
username
;
@Query
(
type
=
Query
.
Type
.
INNER_LIKE
)
private
String
email
;
@Query
private
Boolean
enabled
;
private
Long
deptId
;
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java
View file @
7eba9641
...
...
@@ -2,6 +2,8 @@ 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.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
me.zhengjie.modules.system.repository.DeptRepository
;
import
me.zhengjie.modules.system.service.DeptService
;
...
...
@@ -12,7 +14,6 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -30,6 +31,11 @@ public class DeptServiceImpl implements DeptService {
@Autowired
private
DeptMapper
deptMapper
;
@Override
public
List
<
DeptDTO
>
queryAll
(
DeptQueryCriteria
criteria
)
{
return
deptMapper
.
toDto
(
deptRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
}
@Override
public
DeptDTO
findById
(
Long
id
)
{
Optional
<
Dept
>
dept
=
deptRepository
.
findById
(
id
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictDetailServiceImpl.java
View file @
7eba9641
package
me.zhengjie.modules.system.service.impl
;
import
me.zhengjie.modules.system.domain.DictDetail
;
import
me.zhengjie.modules.system.service.dto.DictDetailQueryCriteria
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
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.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
;
...
...
@@ -26,6 +31,12 @@ public class DictDetailServiceImpl implements DictDetailService {
@Autowired
private
DictDetailMapper
dictDetailMapper
;
@Override
public
Object
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
public
DictDetailDTO
findById
(
Long
id
)
{
Optional
<
DictDetail
>
dictDetail
=
dictDetailRepository
.
findById
(
id
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java
View file @
7eba9641
package
me.zhengjie.modules.system.service.impl
;
import
me.zhengjie.modules.system.domain.Dict
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
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.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
;
...
...
@@ -26,6 +30,12 @@ public class DictServiceImpl implements DictService {
@Autowired
private
DictMapper
dictMapper
;
@Override
public
Object
queryAll
(
DictDTO
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
DictDTO
findById
(
Long
id
)
{
Optional
<
Dict
>
dict
=
dictRepository
.
findById
(
id
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java
View file @
7eba9641
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.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
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.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.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
/**
...
...
@@ -26,6 +34,19 @@ public class JobServiceImpl implements JobService {
@Autowired
private
JobMapper
jobMapper
;
@Autowired
private
DeptRepository
deptRepository
;
@Override
public
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
())
{
jobs
.
add
(
jobMapper
.
toDto
(
job
,
deptRepository
.
findNameById
(
job
.
getDept
().
getPid
())));
}
return
PageUtil
.
toPage
(
jobs
,
page
.
getTotalElements
());
}
@Override
public
JobDTO
findById
(
Long
id
)
{
Optional
<
Job
>
job
=
jobRepository
.
findById
(
id
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java
View file @
7eba9641
...
...
@@ -8,9 +8,11 @@ import me.zhengjie.exception.BadRequestException;
import
me.zhengjie.exception.EntityExistException
;
import
me.zhengjie.modules.system.repository.MenuRepository
;
import
me.zhengjie.modules.system.service.MenuService
;
import
me.zhengjie.modules.system.service.dto.CommonQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.MenuDTO
;
import
me.zhengjie.modules.system.service.dto.RoleSmallDTO
;
import
me.zhengjie.modules.system.service.mapper.MenuMapper
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -29,6 +31,11 @@ public class MenuServiceImpl implements MenuService {
@Autowired
private
MenuMapper
menuMapper
;
@Override
public
List
queryAll
(
CommonQueryCriteria
criteria
){
return
menuMapper
.
toDto
(
menuRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
}
@Override
public
MenuDTO
findById
(
long
id
)
{
Optional
<
Menu
>
menu
=
menuRepository
.
findById
(
id
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/PermissionServiceImpl.java
View file @
7eba9641
...
...
@@ -5,8 +5,10 @@ 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.dto.CommonQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.PermissionDTO
;
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
;
...
...
@@ -28,6 +30,11 @@ public class PermissionServiceImpl implements PermissionService {
@Autowired
private
PermissionMapper
permissionMapper
;
@Override
public
List
<
PermissionDTO
>
queryAll
(
CommonQueryCriteria
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
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java
View file @
7eba9641
...
...
@@ -2,16 +2,20 @@ package me.zhengjie.modules.system.service.impl;
import
me.zhengjie.modules.system.domain.Menu
;
import
me.zhengjie.modules.system.domain.Role
;
import
me.zhengjie.exception.BadRequestException
;
import
me.zhengjie.exception.EntityExistException
;
import
me.zhengjie.modules.system.repository.RoleRepository
;
import
me.zhengjie.modules.system.service.RoleService
;
import
me.zhengjie.modules.system.service.dto.CommonQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.RoleDTO
;
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.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
;
...
...
@@ -35,6 +39,17 @@ public class RoleServiceImpl implements RoleService {
@Autowired
private
RoleSmallMapper
roleSmallMapper
;
@Override
public
Object
queryAll
(
Pageable
pageable
)
{
return
roleMapper
.
toDto
(
roleRepository
.
findAll
(
pageable
).
getContent
());
}
@Override
public
Object
queryAll
(
CommonQueryCriteria
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
public
RoleDTO
findById
(
long
id
)
{
Optional
<
Role
>
role
=
roleRepository
.
findById
(
id
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java
View file @
7eba9641
...
...
@@ -7,9 +7,14 @@ import me.zhengjie.exception.EntityNotFoundException;
import
me.zhengjie.modules.system.repository.UserRepository
;
import
me.zhengjie.modules.system.service.UserService
;
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.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
;
...
...
@@ -33,6 +38,12 @@ public class UserServiceImpl implements UserService {
@Autowired
private
RedisService
redisService
;
@Override
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
public
UserDTO
findById
(
long
id
)
{
Optional
<
User
>
user
=
userRepository
.
findById
(
id
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/query/DeptQueryService.java
deleted
100644 → 0
View file @
e6c23f81
package
me.zhengjie.modules.system.service.query
;
import
me.zhengjie.modules.system.domain.Dept
;
import
me.zhengjie.modules.system.service.dto.DeptDTO
;
import
me.zhengjie.modules.system.repository.DeptRepository
;
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.Cacheable
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.Root
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
/**
* @author jie
* @date 2018-12-03
*/
@Service
@CacheConfig
(
cacheNames
=
"dept"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DeptQueryService
{
@Autowired
private
DeptRepository
deptRepository
;
@Autowired
private
DeptMapper
deptMapper
;
/**
* 不分页
*/
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
public
List
queryAll
(
DeptDTO
dept
,
Set
<
Long
>
deptIds
){
return
deptMapper
.
toDto
(
deptRepository
.
findAll
(
new
Spec
(
dept
,
deptIds
)));
}
class
Spec
implements
Specification
<
Dept
>
{
private
DeptDTO
dept
;
private
Set
<
Long
>
deptIds
;
public
Spec
(
DeptDTO
dept
,
Set
<
Long
>
deptIds
){
this
.
dept
=
dept
;
this
.
deptIds
=
deptIds
;
}
@Override
public
Predicate
toPredicate
(
Root
<
Dept
>
root
,
CriteriaQuery
<?>
criteriaQuery
,
CriteriaBuilder
cb
)
{
List
<
Predicate
>
list
=
new
ArrayList
<
Predicate
>();
if
(!
ObjectUtils
.
isEmpty
(
dept
.
getName
())){
/**
* 模糊
*/
list
.
add
(
cb
.
like
(
root
.
get
(
"name"
).
as
(
String
.
class
),
"%"
+
dept
.
getName
()+
"%"
));
}
if
(!
ObjectUtils
.
isEmpty
(
dept
.
getEnabled
())){
/**
* 相等
*/
list
.
add
(
cb
.
equal
(
root
.
get
(
"enabled"
).
as
(
Boolean
.
class
),
dept
.
getEnabled
()));
}
if
(!
ObjectUtils
.
isEmpty
(
dept
.
getPid
())){
/**
* 相等
*/
list
.
add
(
cb
.
equal
(
root
.
get
(
"pid"
).
as
(
Boolean
.
class
),
dept
.
getPid
()));
}
if
(!
CollectionUtils
.
isEmpty
(
deptIds
))
{
list
.
add
(
root
.
get
(
"id"
).
in
(
deptIds
));
}
Predicate
[]
p
=
new
Predicate
[
list
.
size
()];
return
cb
.
and
(
list
.
toArray
(
p
));
}
}
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/query/DictDetailQueryService.java
deleted
100644 → 0
View file @
e6c23f81
package
me.zhengjie.modules.system.service.query
;
import
me.zhengjie.modules.system.domain.Dict
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.modules.system.domain.DictDetail
;
import
me.zhengjie.modules.system.service.dto.DictDetailDTO
;
import
me.zhengjie.modules.system.repository.DictDetailRepository
;
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.Cacheable
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.ObjectUtils
;
import
javax.persistence.criteria.*
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author jie
* @date 2018-12-03
*/
@Service
@CacheConfig
(
cacheNames
=
"dictDetail"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DictDetailQueryService
{
@Autowired
private
DictDetailRepository
dictDetailRepository
;
@Autowired
private
DictDetailMapper
dictDetailMapper
;
/**
* 分页
*/
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
public
Object
queryAll
(
DictDetailDTO
dictDetail
,
Pageable
pageable
){
Page
<
DictDetail
>
page
=
dictDetailRepository
.
findAll
(
new
Spec
(
dictDetail
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
dictDetailMapper:
:
toDto
));
}
class
Spec
implements
Specification
<
DictDetail
>
{
private
DictDetailDTO
dictDetail
;
public
Spec
(
DictDetailDTO
dictDetail
){
this
.
dictDetail
=
dictDetail
;
}
@Override
public
Predicate
toPredicate
(
Root
<
DictDetail
>
root
,
CriteriaQuery
<?>
criteriaQuery
,
CriteriaBuilder
cb
)
{
List
<
Predicate
>
list
=
new
ArrayList
<
Predicate
>();
Join
<
Dict
,
DictDetail
>
join
=
root
.
join
(
"dict"
,
JoinType
.
LEFT
);
if
(!
ObjectUtils
.
isEmpty
(
dictDetail
.
getLabel
())){
/**
* 模糊
*/
list
.
add
(
cb
.
like
(
root
.
get
(
"label"
).
as
(
String
.
class
),
"%"
+
dictDetail
.
getLabel
()+
"%"
));
}
if
(!
ObjectUtils
.
isEmpty
(
dictDetail
.
getDictName
())){
list
.
add
(
cb
.
equal
(
join
.
get
(
"name"
).
as
(
String
.
class
),
dictDetail
.
getDictName
()));
}
Predicate
[]
p
=
new
Predicate
[
list
.
size
()];
return
cb
.
and
(
list
.
toArray
(
p
));
}
}
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/query/DictQueryService.java
deleted
100644 → 0
View file @
e6c23f81
package
me.zhengjie.modules.system.service.query
;
import
me.zhengjie.utils.BeanHelp
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.modules.system.domain.Dict
;
import
me.zhengjie.modules.system.service.dto.DictDTO
;
import
me.zhengjie.modules.system.repository.DictRepository
;
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.Cacheable
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.ObjectUtils
;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.Root
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author jie
* @date 2018-12-03
*/
@Service
@CacheConfig
(
cacheNames
=
"dict"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DictQueryService
{
@Autowired
private
DictRepository
dictRepository
;
@Autowired
private
DictMapper
dictMapper
;
/**
* 分页
*/
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
public
Object
queryAll
(
DictDTO
dict
,
Pageable
pageable
){
//Page<Dict> page = dictRepository.findAll(new Spec(dict),pageable);
/** Dong ZhaoYang 2019/6/3 修改分页查询方法 */
Page
<
Dict
>
page
=
dictRepository
.
findAll
((
root
,
query
,
cb
)
->
BeanHelp
.
getPredicate
(
root
,
dict
,
cb
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
dictMapper:
:
toDto
));
}
/**
* 不分页
*/
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
public
Object
queryAll
(
DictDTO
dict
){
//return dictMapper.toDto(dictRepository.findAll(new Spec(dict)));
/** Dong ZhaoYang 2019/6/3 不分页 同理 */
return
dictMapper
.
toDto
(
dictRepository
.
findAll
((
root
,
query
,
cb
)
->
BeanHelp
.
getPredicate
(
root
,
dict
,
cb
)));
}
}
Prev
1
2
3
4
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