SysRuleServiceImpl.java
3.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.server.shiro.persistent.service.impl;
import com.server.shiro.persistent.bean.SysPermission;
import com.server.shiro.persistent.bean.SysPermissionQuery;
import com.server.shiro.persistent.bean.SysRule;
import com.server.shiro.persistent.bean.SysRuleQuery;
import com.server.shiro.persistent.repository.SysPermissionRepository;
import com.server.shiro.persistent.repository.SysRuleRepository;
import com.server.shiro.persistent.service.SysRuleService;
import org.springframework.beans.factory.annotation.Autowired;
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.util.StringUtils;
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;
/**
* Created by dell on 2018/3/13.
*/
@Service
public class SysRuleServiceImpl implements SysRuleService {
@Autowired
SysRuleRepository ruleRepository;
@Autowired
SysPermissionRepository sysPermissionRepository;
@Override
public Page<SysRule> findSysRulePage(Pageable pageable, SysRuleQuery ruleQuery) {
Page<SysRule> bookPage = ruleRepository.findAll(new Specification<SysRule>(){
public Predicate toPredicate(Root<SysRule> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
List<Predicate> list = new ArrayList<Predicate>();
if(StringUtils.hasText(ruleQuery.getRuleName())){
list.add(criteriaBuilder.like(root.get("ruleName").as(String.class), "%"+ruleQuery.getRuleName()+"%"));
}
if(StringUtils.hasText(ruleQuery.getRuleCode())){
list.add(criteriaBuilder.like(root.get("ruleCode").as(String.class), "%"+ruleQuery.getRuleCode()+"%"));
}
if(StringUtils.hasText(ruleQuery.getStatus())){
list.add(criteriaBuilder.equal(root.get("status").as(String.class), ruleQuery.getStatus()));
}
Predicate[] p = new Predicate[list.size()];
return criteriaBuilder.and(list.toArray(p));
}
},pageable);
return bookPage;
}
@Override
public Page<SysPermission> findSysPermissionPage(Pageable pageable, SysPermissionQuery permissionQuery) {
Page<SysPermission> bookPage = sysPermissionRepository.findAll(new Specification<SysPermission>(){
public Predicate toPredicate(Root<SysPermission> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
List<Predicate> list = new ArrayList<Predicate>();
if(StringUtils.hasText(permissionQuery.getPermissionName())){
list.add(criteriaBuilder.like(root.get("permissionName").as(String.class), "%"+permissionQuery.getPermissionName()+"%"));
}
if(StringUtils.hasText(permissionQuery.getPermissionCode())){
list.add(criteriaBuilder.like(root.get("permissionCode").as(String.class), "%"+permissionQuery.getPermissionCode()+"%"));
}
if(StringUtils.hasText(permissionQuery.getStatus())){
list.add(criteriaBuilder.equal(root.get("status").as(String.class), permissionQuery.getStatus()));
}
Predicate[] p = new Predicate[list.size()];
return criteriaBuilder.and(list.toArray(p));
}
},pageable);
return bookPage;
}
}