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
9f43851e
Commit
9f43851e
authored
Apr 11, 2019
by
zhengjie
Browse files
1.7版本发布,详情查看版本说明
parent
1402e584
Changes
89
Hide whitespace changes
Inline
Side-by-side
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictDetailServiceImpl.java
0 → 100644
View file @
9f43851e
package
me.zhengjie.modules.system.service.impl
;
import
me.zhengjie.modules.system.domain.DictDetail
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Optional
;
/**
* @author jie
* @date 2019-04-10
*/
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DictDetailServiceImpl
implements
DictDetailService
{
@Autowired
private
DictDetailRepository
dictDetailRepository
;
@Autowired
private
DictDetailMapper
dictDetailMapper
;
@Override
public
DictDetailDTO
findById
(
Long
id
)
{
Optional
<
DictDetail
>
dictDetail
=
dictDetailRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
dictDetail
,
"DictDetail"
,
"id"
,
id
);
return
dictDetailMapper
.
toDto
(
dictDetail
.
get
());
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DictDetailDTO
create
(
DictDetail
resources
)
{
return
dictDetailMapper
.
toDto
(
dictDetailRepository
.
save
(
resources
));
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
DictDetail
resources
)
{
Optional
<
DictDetail
>
optionalDictDetail
=
dictDetailRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalDictDetail
,
"DictDetail"
,
"id"
,
resources
.
getId
());
DictDetail
dictDetail
=
optionalDictDetail
.
get
();
// 此处需自己修改
resources
.
setId
(
dictDetail
.
getId
());
dictDetailRepository
.
save
(
resources
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
dictDetailRepository
.
deleteById
(
id
);
}
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java
0 → 100644
View file @
9f43851e
package
me.zhengjie.modules.system.service.impl
;
import
me.zhengjie.modules.system.domain.Dict
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Optional
;
/**
* @author jie
* @date 2019-04-10
*/
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DictServiceImpl
implements
DictService
{
@Autowired
private
DictRepository
dictRepository
;
@Autowired
private
DictMapper
dictMapper
;
@Override
public
DictDTO
findById
(
Long
id
)
{
Optional
<
Dict
>
dict
=
dictRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
dict
,
"Dict"
,
"id"
,
id
);
return
dictMapper
.
toDto
(
dict
.
get
());
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DictDTO
create
(
Dict
resources
)
{
return
dictMapper
.
toDto
(
dictRepository
.
save
(
resources
));
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Dict
resources
)
{
Optional
<
Dict
>
optionalDict
=
dictRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalDict
,
"Dict"
,
"id"
,
resources
.
getId
());
Dict
dict
=
optionalDict
.
get
();
// 此处需自己修改
resources
.
setId
(
dict
.
getId
());
dictRepository
.
save
(
resources
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
dictRepository
.
deleteById
(
id
);
}
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java
0 → 100644
View file @
9f43851e
package
me.zhengjie.modules.system.service.impl
;
import
me.zhengjie.modules.system.domain.Job
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Optional
;
/**
* @author jie
* @date 2019-03-29
*/
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
JobServiceImpl
implements
JobService
{
@Autowired
private
JobRepository
jobRepository
;
@Autowired
private
JobMapper
jobMapper
;
@Override
public
JobDTO
findById
(
Long
id
)
{
Optional
<
Job
>
job
=
jobRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
job
,
"Job"
,
"id"
,
id
);
return
jobMapper
.
toDto
(
job
.
get
());
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
JobDTO
create
(
Job
resources
)
{
return
jobMapper
.
toDto
(
jobRepository
.
save
(
resources
));
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Job
resources
)
{
Optional
<
Job
>
optionalJob
=
jobRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalJob
,
"Job"
,
"id"
,
resources
.
getId
());
Job
job
=
optionalJob
.
get
();
// 此处需自己修改
resources
.
setId
(
job
.
getId
());
jobRepository
.
save
(
resources
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
jobRepository
.
deleteById
(
id
);
}
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java
View file @
9f43851e
...
...
@@ -37,7 +37,7 @@ public class MenuServiceImpl implements MenuService {
}
@Override
public
List
<
MenuDTO
>
findByRoles
(
Se
t
<
Role
>
roles
)
{
public
List
<
MenuDTO
>
findByRoles
(
Lis
t
<
Role
>
roles
)
{
Set
<
Menu
>
menus
=
new
LinkedHashSet
<>();
for
(
Role
role
:
roles
)
{
List
<
Menu
>
menus1
=
menuRepository
.
findByRoles_IdOrderBySortAsc
(
role
.
getId
()).
stream
().
collect
(
Collectors
.
toList
());
...
...
@@ -61,6 +61,9 @@ public class MenuServiceImpl implements MenuService {
@Override
public
void
update
(
Menu
resources
)
{
if
(
resources
.
getId
().
equals
(
resources
.
getPid
()))
{
throw
new
BadRequestException
(
"上级不能为自己"
);
}
Optional
<
Menu
>
optionalPermission
=
menuRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalPermission
,
"Permission"
,
"id"
,
resources
.
getId
());
...
...
@@ -87,10 +90,6 @@ public class MenuServiceImpl implements MenuService {
@Override
public
void
delete
(
Long
id
)
{
List
<
Menu
>
menuList
=
menuRepository
.
findByPid
(
id
);
for
(
Menu
menu
:
menuList
)
{
menuRepository
.
delete
(
menu
);
}
menuRepository
.
deleteById
(
id
);
}
...
...
@@ -193,4 +192,11 @@ public class MenuServiceImpl implements MenuService {
);
return
list
;
}
@Override
public
Menu
findOne
(
Long
id
)
{
Optional
<
Menu
>
menu
=
menuRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
menu
,
"Menu"
,
"id"
,
id
);
return
menu
.
get
();
}
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/PermissionServiceImpl.java
View file @
9f43851e
...
...
@@ -47,8 +47,10 @@ public class PermissionServiceImpl implements PermissionService {
@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
();
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java
View file @
9f43851e
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
;
...
...
@@ -13,6 +14,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @author jie
...
...
@@ -61,6 +63,8 @@ public class RoleServiceImpl implements RoleService {
role
.
setName
(
resources
.
getName
());
role
.
setRemark
(
resources
.
getRemark
());
role
.
setDataScope
(
resources
.
getDataScope
());
role
.
setDepts
(
resources
.
getDepts
());
roleRepository
.
save
(
role
);
}
...
...
@@ -79,28 +83,23 @@ public class RoleServiceImpl implements RoleService {
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
roleRepository
.
deleteById
(
id
);
public
void
untiedMenu
(
Menu
menu
)
{
Set
<
Role
>
roles
=
roleRepository
.
findByMenus_Id
(
menu
.
getId
());
for
(
Role
role
:
roles
)
{
menu
.
getRoles
().
remove
(
role
);
role
.
getMenus
().
remove
(
menu
);
roleRepository
.
save
(
role
);
}
}
@Override
public
Object
getRoleTree
()
{
List
<
Role
>
roleList
=
roleRepository
.
findAll
();
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
Role
role
:
roleList
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"id"
,
role
.
getId
());
map
.
put
(
"label"
,
role
.
getName
());
list
.
add
(
map
);
}
return
list
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
roleRepository
.
deleteById
(
id
);
}
@Override
public
Se
t
<
Role
>
findByUsers_Id
(
Long
id
)
{
return
roleRepository
.
findByUsers_Id
(
id
);
public
Lis
t
<
Role
>
findByUsers_Id
(
Long
id
)
{
return
roleRepository
.
findByUsers_Id
(
id
)
.
stream
().
collect
(
Collectors
.
toList
())
;
}
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java
View file @
9f43851e
package
me.zhengjie.modules.system.service.impl
;
import
me.zhengjie.modules.system.domain.User
;
import
me.zhengjie.exception.BadRequestException
;
import
me.zhengjie.exception.EntityExistException
;
import
me.zhengjie.exception.EntityNotFoundException
;
import
me.zhengjie.modules.system.repository.UserRepository
;
import
me.zhengjie.modules.security.security.JwtUser
;
import
me.zhengjie.modules.security.utils.JwtTokenUtil
;
import
me.zhengjie.modules.system.service.UserService
;
import
me.zhengjie.modules.system.service.dto.UserDTO
;
import
me.zhengjie.modules.system.service.mapper.UserMapper
;
...
...
@@ -32,9 +29,6 @@ public class UserServiceImpl implements UserService {
@Autowired
private
UserMapper
userMapper
;
@Autowired
private
JwtTokenUtil
jwtTokenUtil
;
@Override
public
UserDTO
findById
(
long
id
)
{
Optional
<
User
>
user
=
userRepository
.
findById
(
id
);
...
...
@@ -54,20 +48,15 @@ public class UserServiceImpl implements UserService {
throw
new
EntityExistException
(
User
.
class
,
"email"
,
resources
.
getEmail
());
}
if
(
resources
.
getRoles
()
==
null
||
resources
.
getRoles
().
size
()
==
0
){
throw
new
BadRequestException
(
"角色不能为空"
);
}
// 默认密码 123456,此密码是 MD5加密后的字符
resources
.
setPassword
(
"14e1b600b1fd579f47433b88e8d85291"
);
resources
.
setAvatar
(
"https://i.loli.net/2018/12/06/5c08894d8de21.jpg"
);
// 默认密码 123456,此密码是加密后的字符
resources
.
setPassword
(
"e10adc3949ba59abbe56e057f20f883e"
);
resources
.
setAvatar
(
"https://aurora-1255840532.cos.ap-chengdu.myqcloud.com/8918a306ea314404835a9196585c4b75.jpeg"
);
return
userMapper
.
toDto
(
userRepository
.
save
(
resources
));
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
User
resources
)
{
Optional
<
User
>
userOptional
=
userRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
userOptional
,
"User"
,
"id"
,
resources
.
getId
());
...
...
@@ -76,10 +65,6 @@ public class UserServiceImpl implements UserService {
User
user1
=
userRepository
.
findByUsername
(
user
.
getUsername
());
User
user2
=
userRepository
.
findByEmail
(
user
.
getEmail
());
if
(
resources
.
getRoles
()
==
null
||
resources
.
getRoles
().
size
()
==
0
){
throw
new
BadRequestException
(
"角色不能为空"
);
}
if
(
user1
!=
null
&&!
user
.
getId
().
equals
(
user1
.
getId
())){
throw
new
EntityExistException
(
User
.
class
,
"username"
,
resources
.
getUsername
());
}
...
...
@@ -92,7 +77,9 @@ public class UserServiceImpl implements UserService {
user
.
setEmail
(
resources
.
getEmail
());
user
.
setEnabled
(
resources
.
getEnabled
());
user
.
setRoles
(
resources
.
getRoles
());
user
.
setDept
(
resources
.
getDept
());
user
.
setJob
(
resources
.
getJob
());
user
.
setPhone
(
resources
.
getPhone
());
userRepository
.
save
(
user
);
}
...
...
@@ -120,19 +107,19 @@ public class UserServiceImpl implements UserService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updatePass
(
JwtUser
jwtUser
,
String
pass
)
{
userRepository
.
updatePass
(
jwtUser
.
getId
()
,
pass
,
new
Date
());
public
void
updatePass
(
String
username
,
String
pass
)
{
userRepository
.
updatePass
(
username
,
pass
,
new
Date
());
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateAvatar
(
JwtUser
jwtUser
,
String
url
)
{
userRepository
.
updateAvatar
(
jwtUser
.
getId
()
,
url
);
public
void
updateAvatar
(
String
username
,
String
url
)
{
userRepository
.
updateAvatar
(
username
,
url
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateEmail
(
JwtUser
jwtUser
,
String
email
)
{
userRepository
.
updateEmail
(
jwtUser
.
getId
()
,
email
);
public
void
updateEmail
(
String
username
,
String
email
)
{
userRepository
.
updateEmail
(
username
,
email
);
}
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/DeptMapper.java
0 → 100644
View file @
9f43851e
package
me.zhengjie.modules.system.service.mapper
;
import
me.zhengjie.mapper.EntityMapper
;
import
me.zhengjie.modules.system.domain.Dept
;
import
me.zhengjie.modules.system.service.dto.DeptDTO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
/**
* @author jie
* @date 2019-03-25
*/
@Mapper
(
componentModel
=
"spring"
,
uses
=
{},
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
DeptMapper
extends
EntityMapper
<
DeptDTO
,
Dept
>
{
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/DictDetailMapper.java
0 → 100644
View file @
9f43851e
package
me.zhengjie.modules.system.service.mapper
;
import
me.zhengjie.mapper.EntityMapper
;
import
me.zhengjie.modules.system.domain.DictDetail
;
import
me.zhengjie.modules.system.service.dto.DictDetailDTO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
/**
* @author jie
* @date 2019-04-10
*/
@Mapper
(
componentModel
=
"spring"
,
uses
=
{},
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
DictDetailMapper
extends
EntityMapper
<
DictDetailDTO
,
DictDetail
>
{
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/DictMapper.java
0 → 100644
View file @
9f43851e
package
me.zhengjie.modules.system.service.mapper
;
import
me.zhengjie.mapper.EntityMapper
;
import
me.zhengjie.modules.system.domain.Dict
;
import
me.zhengjie.modules.system.service.dto.DictDTO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
/**
* @author jie
* @date 2019-04-10
*/
@Mapper
(
componentModel
=
"spring"
,
uses
=
{},
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
DictMapper
extends
EntityMapper
<
DictDTO
,
Dict
>
{
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/JobMapper.java
0 → 100644
View file @
9f43851e
package
me.zhengjie.modules.system.service.mapper
;
import
me.zhengjie.mapper.EntityMapper
;
import
me.zhengjie.modules.system.domain.Job
;
import
me.zhengjie.modules.system.service.dto.JobDTO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
/**
* @author jie
* @date 2019-03-29
*/
@Mapper
(
componentModel
=
"spring"
,
uses
=
{
DeptMapper
.
class
},
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
JobMapper
extends
EntityMapper
<
JobDTO
,
Job
>
{
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/RoleMapper.java
View file @
9f43851e
...
...
@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author jie
* @date 2018-11-23
*/
@Mapper
(
componentModel
=
"spring"
,
uses
=
{
PermissionMapper
.
class
,
MenuMapper
.
class
},
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
@Mapper
(
componentModel
=
"spring"
,
uses
=
{
PermissionMapper
.
class
,
MenuMapper
.
class
,
DeptMapper
.
class
},
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
RoleMapper
extends
EntityMapper
<
RoleDTO
,
Role
>
{
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/UserMapper.java
View file @
9f43851e
...
...
@@ -10,7 +10,7 @@ import org.mapstruct.ReportingPolicy;
* @author jie
* @date 2018-11-23
*/
@Mapper
(
componentModel
=
"spring"
,
uses
=
{
RoleMapper
.
class
},
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
@Mapper
(
componentModel
=
"spring"
,
uses
=
{
RoleMapper
.
class
,
DeptMapper
.
class
,
JobMapper
.
class
},
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
UserMapper
extends
EntityMapper
<
UserDTO
,
User
>
{
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/query/DeptQueryService.java
0 → 100644
View file @
9f43851e
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
0 → 100644
View file @
9f43851e
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
0 → 100644
View file @
9f43851e
package
me.zhengjie.modules.system.service.query
;
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
);
return
PageUtil
.
toPage
(
page
.
map
(
dictMapper:
:
toDto
));
}
/**
* 不分页
*/
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
public
Object
queryAll
(
DictDTO
dict
){
return
dictMapper
.
toDto
(
dictRepository
.
findAll
(
new
Spec
(
dict
)));
}
class
Spec
implements
Specification
<
Dict
>
{
private
DictDTO
dict
;
public
Spec
(
DictDTO
dict
){
this
.
dict
=
dict
;
}
@Override
public
Predicate
toPredicate
(
Root
<
Dict
>
root
,
CriteriaQuery
<?>
criteriaQuery
,
CriteriaBuilder
cb
)
{
List
<
Predicate
>
list
=
new
ArrayList
<
Predicate
>();
if
(!
ObjectUtils
.
isEmpty
(
dict
.
getName
())){
/**
* 模糊
*/
list
.
add
(
cb
.
like
(
root
.
get
(
"name"
).
as
(
String
.
class
),
"%"
+
dict
.
getName
()+
"%"
));
}
if
(!
ObjectUtils
.
isEmpty
(
dict
.
getRemark
())){
/**
* 模糊
*/
list
.
add
(
cb
.
like
(
root
.
get
(
"remark"
).
as
(
String
.
class
),
"%"
+
dict
.
getRemark
()+
"%"
));
}
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/JobQueryService.java
0 → 100644
View file @
9f43851e
package
me.zhengjie.modules.system.service.query
;
import
me.zhengjie.modules.system.domain.Dept
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.modules.system.domain.Job
;
import
me.zhengjie.modules.system.service.dto.JobDTO
;
import
me.zhengjie.modules.system.repository.JobRepository
;
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.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.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
javax.persistence.criteria.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
/**
* @author jie
* @date 2018-12-03
*/
@Service
@CacheConfig
(
cacheNames
=
"job"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
JobQueryService
{
@Autowired
private
JobRepository
jobRepository
;
@Autowired
private
JobMapper
jobMapper
;
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
public
Object
queryAll
(
String
name
,
Boolean
enabled
,
Set
<
Long
>
deptIds
,
Long
deptId
,
Pageable
pageable
){
Page
<
Job
>
page
=
jobRepository
.
findAll
(
new
Spec
(
new
JobDTO
(
name
,
enabled
),
deptIds
,
deptId
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
jobMapper:
:
toDto
));
}
class
Spec
implements
Specification
<
Job
>
{
private
JobDTO
job
;
private
Long
deptId
;
private
Set
<
Long
>
deptIds
;
public
Spec
(
JobDTO
job
,
Set
<
Long
>
deptIds
,
Long
deptId
){
this
.
job
=
job
;
this
.
deptId
=
deptId
;
this
.
deptIds
=
deptIds
;
}
@Override
public
Predicate
toPredicate
(
Root
<
Job
>
root
,
CriteriaQuery
<?>
criteriaQuery
,
CriteriaBuilder
cb
)
{
List
<
Predicate
>
list
=
new
ArrayList
<
Predicate
>();
// 数据权限
Join
<
Dept
,
Job
>
join
=
root
.
join
(
"dept"
,
JoinType
.
LEFT
);
if
(!
CollectionUtils
.
isEmpty
(
deptIds
))
{
list
.
add
(
join
.
get
(
"id"
).
in
(
deptIds
));
}
if
(!
ObjectUtils
.
isEmpty
(
job
.
getEnabled
())){
/**
* 精确
*/
list
.
add
(
cb
.
equal
(
root
.
get
(
"enabled"
).
as
(
Boolean
.
class
),
job
.
getEnabled
()));
}
if
(!
ObjectUtils
.
isEmpty
(
job
.
getName
())){
/**
* 模糊
*/
list
.
add
(
cb
.
like
(
root
.
get
(
"name"
).
as
(
String
.
class
),
"%"
+
job
.
getName
()+
"%"
));
}
if
(
deptId
!=
null
)
{
/**
* 精确
*/
list
.
add
(
cb
.
equal
(
join
.
get
(
"id"
).
as
(
Long
.
class
),
deptId
));
}
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/RoleQueryService.java
View file @
9f43851e
...
...
@@ -45,6 +45,15 @@ public class RoleQueryService {
return
PageUtil
.
toPage
(
page
.
map
(
roleMapper:
:
toDto
));
}
/**
* 分页
*/
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
public
Object
queryAll
(){
List
<
Role
>
roles
=
roleRepository
.
findAll
(
new
Spec
(
null
));
return
roleMapper
.
toDto
(
roles
);
}
class
Spec
implements
Specification
<
Role
>
{
private
String
name
;
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/query/UserQueryService.java
View file @
9f43851e
package
me.zhengjie.modules.system.service.query
;
import
me.zhengjie.modules.system.domain.Dept
;
import
me.zhengjie.modules.system.domain.User
;
import
me.zhengjie.modules.system.repository.UserRepository
;
import
me.zhengjie.modules.system.service.dto.UserDTO
;
...
...
@@ -14,13 +15,13 @@ 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
javax.persistence.criteria.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
/**
* @author jie
...
...
@@ -41,24 +42,20 @@ public class UserQueryService {
* 分页
*/
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
public
Object
queryAll
(
UserDTO
user
,
Pageable
pageable
){
Page
<
User
>
page
=
userRepo
.
findAll
(
new
Spec
(
user
),
pageable
);
public
Object
queryAll
(
UserDTO
user
,
Set
<
Long
>
deptIds
,
Pageable
pageable
){
Page
<
User
>
page
=
userRepo
.
findAll
(
new
Spec
(
user
,
deptIds
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
userMapper:
:
toDto
));
}
/**
* 不分页
*/
@Cacheable
(
keyGenerator
=
"keyGenerator"
)
public
Object
queryAll
(
UserDTO
user
){
return
userMapper
.
toDto
(
userRepo
.
findAll
(
new
Spec
(
user
)));
}
class
Spec
implements
Specification
<
User
>
{
private
UserDTO
user
;
public
Spec
(
UserDTO
user
){
private
Set
<
Long
>
deptIds
;
public
Spec
(
UserDTO
user
,
Set
<
Long
>
deptIds
){
this
.
deptIds
=
deptIds
;
this
.
user
=
user
;
}
...
...
@@ -67,6 +64,12 @@ public class UserQueryService {
List
<
Predicate
>
list
=
new
ArrayList
<
Predicate
>();
// 数据权限, 关联查询
Join
<
Dept
,
User
>
join
=
root
.
join
(
"dept"
,
JoinType
.
LEFT
);
if
(!
CollectionUtils
.
isEmpty
(
deptIds
))
{
list
.
add
(
join
.
get
(
"id"
).
in
(
deptIds
));
}
if
(!
ObjectUtils
.
isEmpty
(
user
.
getId
())){
/**
* 相等
...
...
eladmin-system/src/main/resources/config/application-prod.yml
View file @
9f43851e
...
...
@@ -59,4 +59,11 @@ jwt:
#是否允许生成代码,生产环境设置为false
generator
:
enabled
:
false
\ No newline at end of file
enabled
:
false
#如果生产环境要开启swagger,需要配置请求地址
#springfox:
# documentation:
# swagger:
# v2:
# host: # 接口域名或外网ip
\ No newline at end of file
Prev
1
2
3
4
5
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