|
@@ -2,14 +2,8 @@ package org.brynhild.graduation.device.factory;
|
|
|
|
|
|
import jakarta.persistence.criteria.Predicate;
|
|
|
import org.brynhild.graduation.common.utils.StringUtil;
|
|
|
-import org.brynhild.graduation.persistence.device.entity.Area;
|
|
|
-import org.brynhild.graduation.persistence.device.entity.Credential;
|
|
|
-import org.brynhild.graduation.persistence.device.entity.Device;
|
|
|
-import org.brynhild.graduation.persistence.device.entity.SignInRecord;
|
|
|
-import org.brynhild.graduation.transfer.device.vo.QueryAreaRequest;
|
|
|
-import org.brynhild.graduation.transfer.device.vo.QueryCredentialRequest;
|
|
|
-import org.brynhild.graduation.transfer.device.vo.QueryDeviceRequest;
|
|
|
-import org.brynhild.graduation.transfer.device.vo.QuerySignInRecordRequest;
|
|
|
+import org.brynhild.graduation.persistence.device.entity.*;
|
|
|
+import org.brynhild.graduation.transfer.device.vo.*;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
@@ -20,126 +14,147 @@ import java.util.List;
|
|
|
public class SpecificationFactory {
|
|
|
|
|
|
|
|
|
- public Specification<Area> getAreaSpecification(QueryAreaRequest info) {
|
|
|
+ public Specification<Area> getAreaSpecification(QueryAreaRequest info){
|
|
|
return (root, query, criteriaBuilder) -> {
|
|
|
- List<Predicate> predicateList = new ArrayList<>();
|
|
|
- if (info.getOwner() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("owner").as(Long.class), info.getOwner()));
|
|
|
+ List<Predicate> predicateList=new ArrayList<>();
|
|
|
+ if(info.getOwner()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("owner").as(Long.class),info.getOwner()));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getName())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("name").as(String.class), "%" + info.getName() + "%"));
|
|
|
+ if(!StringUtil.isEmpty(info.getName())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("name").as(String.class),"%"+info.getName()+"%"));
|
|
|
}
|
|
|
- if (predicateList.isEmpty()) {
|
|
|
+ if(predicateList.isEmpty()){
|
|
|
return null;
|
|
|
}
|
|
|
- Predicate predicate = predicateList.get(0);
|
|
|
- for (int i = 1; i < predicateList.size(); i++) {
|
|
|
- predicate = criteriaBuilder.and(predicate, predicateList.get(i));
|
|
|
+ Predicate predicate=predicateList.get(0);
|
|
|
+ for(int i=1;i<predicateList.size();i++){
|
|
|
+ predicate=criteriaBuilder.and(predicate,predicateList.get(i));
|
|
|
}
|
|
|
return predicate;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
|
|
|
- public Specification<Credential> getCredentialSpecification(QueryCredentialRequest info) {
|
|
|
+ public Specification<Device> getDeviceSpecification(QueryDeviceRequest info){
|
|
|
return (root, query, criteriaBuilder) -> {
|
|
|
- List<Predicate> predicateList = new ArrayList<>();
|
|
|
- if (info.getUserId() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("userId").as(Long.class), info.getUserId()));
|
|
|
+ List<Predicate> predicateList=new ArrayList<>();
|
|
|
+ if(info.getOwner()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("owner").as(Long.class),info.getOwner()));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getUserCredential())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("userCredential").as(String.class), "%" + info.getUserCredential() + "%"));
|
|
|
+ if(info.getArea()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("area").as(Long.class),info.getArea()));
|
|
|
}
|
|
|
- if (info.getAreaId() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("areaId").as(Long.class), info.getAreaId()));
|
|
|
+ if(!StringUtil.isEmpty(info.getMac())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("mac").as(String.class),"%"+info.getMac()+"%"));
|
|
|
}
|
|
|
- if (info.getDeviceId() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("deviceId").as(Long.class), info.getDeviceId()));
|
|
|
+ if(!StringUtil.isEmpty(info.getName())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("name").as(String.class),"%"+info.getName()+"%"));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getUserName())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("userName").as(String.class), "%" + info.getUserName() + "%"));
|
|
|
+ if(info.getActive()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("active").as(Boolean.class),info.getActive()));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getAreaName())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("areaName").as(String.class), "%" + info.getAreaName() + "%"));
|
|
|
+ if(predicateList.isEmpty()){
|
|
|
+ return null;
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getDeviceName())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("deviceName").as(String.class), "%" + info.getDeviceName() + "%"));
|
|
|
+ Predicate predicate=predicateList.get(0);
|
|
|
+ for(int i=1;i<predicateList.size();i++){
|
|
|
+ predicate=criteriaBuilder.and(predicate,predicateList.get(i));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getDeviceMac())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("deviceMac").as(String.class), "%" + info.getDeviceMac() + "%"));
|
|
|
+ return predicate;
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public Specification<DeviceRelationship> getDeviceRelationshipSpecification(QueryRelationshipRequest info){
|
|
|
+ return (root, query, criteriaBuilder) -> {
|
|
|
+ List<Predicate> predicateList=new ArrayList<>();
|
|
|
+ if(info.getMaster()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("master").as(Long.class),info.getMaster()));
|
|
|
}
|
|
|
- if (info.getActive() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("active").as(Boolean.class), info.getActive()));
|
|
|
+ if(info.getSlave()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("slave").as(Long.class),info.getSlave()));
|
|
|
}
|
|
|
- if (predicateList.isEmpty()) {
|
|
|
+ if(predicateList.isEmpty()){
|
|
|
return null;
|
|
|
}
|
|
|
- Predicate predicate = predicateList.get(0);
|
|
|
- for (int i = 1; i < predicateList.size(); i++) {
|
|
|
- predicate = criteriaBuilder.and(predicate, predicateList.get(i));
|
|
|
+ Predicate predicate=predicateList.get(0);
|
|
|
+ for(int i=1;i<predicateList.size();i++){
|
|
|
+ predicate=criteriaBuilder.and(predicate,predicateList.get(i));
|
|
|
}
|
|
|
return predicate;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
|
|
|
- public Specification<SignInRecord> getSignInRecordSpecification(QuerySignInRecordRequest info) {
|
|
|
+ public Specification<SignInRecord> getSignInRecordSpecification(QuerySignInRecordRequest info){
|
|
|
return (root, query, criteriaBuilder) -> {
|
|
|
- List<Predicate> predicateList = new ArrayList<>();
|
|
|
- if (info.getUserId() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("userId").as(Long.class), info.getUserId()));
|
|
|
+ List<Predicate> predicateList=new ArrayList<>();
|
|
|
+ if(info.getUserId()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("userId").as(Long.class),info.getUserId()));
|
|
|
}
|
|
|
- if (info.getAreaId() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("areaId").as(Long.class), info.getAreaId()));
|
|
|
+ if(info.getAreaId()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("areaId").as(Long.class),info.getAreaId()));
|
|
|
}
|
|
|
- if (info.getDeviceId() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("deviceId").as(Long.class), info.getDeviceId()));
|
|
|
+ if(info.getDeviceId()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("deviceId").as(Long.class),info.getDeviceId()));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getUserName())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("userName").as(String.class), "%" + info.getUserName() + "%"));
|
|
|
+ if(!StringUtil.isEmpty(info.getUserName())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("userName").as(String.class),"%"+info.getUserName()+"%"));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getAreaName())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("areaName").as(String.class), "%" + info.getAreaName() + "%"));
|
|
|
+ if(!StringUtil.isEmpty(info.getAreaName())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("areaName").as(String.class),"%"+info.getAreaName()+"%"));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getDeviceName())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("deviceName").as(String.class), "%" + info.getDeviceName() + "%"));
|
|
|
+ if(!StringUtil.isEmpty(info.getDeviceName())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("deviceName").as(String.class),"%"+info.getDeviceName()+"%"));
|
|
|
}
|
|
|
- if (predicateList.isEmpty()) {
|
|
|
+ if(predicateList.isEmpty()){
|
|
|
return null;
|
|
|
}
|
|
|
- Predicate predicate = predicateList.get(0);
|
|
|
- for (int i = 1; i < predicateList.size(); i++) {
|
|
|
- predicate = criteriaBuilder.and(predicate, predicateList.get(i));
|
|
|
+ Predicate predicate=predicateList.get(0);
|
|
|
+ for(int i=1;i<predicateList.size();i++){
|
|
|
+ predicate=criteriaBuilder.and(predicate,predicateList.get(i));
|
|
|
}
|
|
|
return predicate;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
|
|
|
- public Specification<Device> getDeviceSpecification(QueryDeviceRequest info) {
|
|
|
+ public Specification<Credential> getCredentialSpecification(QueryCredentialRequest info){
|
|
|
return (root, query, criteriaBuilder) -> {
|
|
|
- List<Predicate> predicateList = new ArrayList<>();
|
|
|
- if (info.getOwner() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("owner").as(Long.class), info.getOwner()));
|
|
|
+ List<Predicate> predicateList=new ArrayList<>();
|
|
|
+ if(info.getUserId()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("userId").as(Long.class),info.getUserId()));
|
|
|
+ }
|
|
|
+ if(!StringUtil.isEmpty(info.getUserCredential())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("userCredential").as(String.class),"%"+info.getUserCredential()+"%"));
|
|
|
+ }
|
|
|
+ if(info.getAreaId()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("areaId").as(Long.class),info.getAreaId()));
|
|
|
+ }
|
|
|
+ if(info.getDeviceId()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("deviceId").as(Long.class),info.getDeviceId()));
|
|
|
+ }
|
|
|
+ if(!StringUtil.isEmpty(info.getUserName())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("userName").as(String.class),"%"+info.getUserName()+"%"));
|
|
|
}
|
|
|
- if (info.getArea() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("area").as(Long.class), info.getArea()));
|
|
|
+ if(!StringUtil.isEmpty(info.getAreaName())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("areaName").as(String.class),"%"+info.getAreaName()+"%"));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getMac())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("mac").as(String.class), "%" + info.getMac() + "%"));
|
|
|
+ if(!StringUtil.isEmpty(info.getDeviceName())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("deviceName").as(String.class),"%"+info.getDeviceName()+"%"));
|
|
|
}
|
|
|
- if (!StringUtil.isEmpty(info.getName())) {
|
|
|
- predicateList.add(criteriaBuilder.like(root.get("name").as(String.class), "%" + info.getName() + "%"));
|
|
|
+ if(!StringUtil.isEmpty(info.getDeviceMac())){
|
|
|
+ predicateList.add(criteriaBuilder.like(root.get("deviceMac").as(String.class),"%"+info.getDeviceMac()+"%"));
|
|
|
}
|
|
|
- if (info.getActive() != null) {
|
|
|
- predicateList.add(criteriaBuilder.equal(root.get("active").as(Boolean.class), info.getActive()));
|
|
|
+ if(info.getActive()!=null){
|
|
|
+ predicateList.add(criteriaBuilder.equal(root.get("active").as(Boolean.class),info.getActive()));
|
|
|
}
|
|
|
- if (predicateList.isEmpty()) {
|
|
|
+ if(predicateList.isEmpty()){
|
|
|
return null;
|
|
|
}
|
|
|
- Predicate predicate = predicateList.get(0);
|
|
|
- for (int i = 1; i < predicateList.size(); i++) {
|
|
|
- predicate = criteriaBuilder.and(predicate, predicateList.get(i));
|
|
|
+ Predicate predicate=predicateList.get(0);
|
|
|
+ for(int i=1;i<predicateList.size();i++){
|
|
|
+ predicate=criteriaBuilder.and(predicate,predicateList.get(i));
|
|
|
}
|
|
|
return predicate;
|
|
|
};
|