xiongzhu 4 éve
szülő
commit
5de7c737f9

+ 0 - 44
src/main/java/com/izouma/jmrh/domain/NotificationMessage.java

@@ -1,44 +0,0 @@
-package com.izouma.jmrh.domain;
-
-import com.izouma.jmrh.enums.MessageType;
-import com.izouma.jmrh.enums.Reading;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-
-@Data
-@Entity
-@ApiModel("通知消息")
-public class NotificationMessage extends BaseEntity {
-    Long conversationId;
-
-    @ApiModelProperty("接收人")
-    private Long recipientId;
-
-    @ApiModelProperty("标题")
-    private String name;
-
-    @ApiModelProperty("发送人")
-    private Long senderId;
-
-    @ApiModelProperty("发送人名称")
-    private String senderName;
-
-    @ApiModelProperty("发送人头像")
-    private String senderAvatar;
-
-    @ApiModelProperty("内容")
-    private String content;
-
-    @ApiModelProperty("是否阅读")
-    @Enumerated(EnumType.STRING)
-    private Reading reading;
-
-    @ApiModelProperty("消息类型")
-    @Enumerated(EnumType.STRING)
-    private MessageType messageType;
-}

+ 3 - 1
src/main/java/com/izouma/jmrh/repo/MessageRepo.java

@@ -25,7 +25,7 @@ public interface MessageRepo extends JpaRepository<Message, Long>, JpaSpecificat
 
     @Transactional
     @Modifying
-    @Query("update Message m set m.read = true where m.toUserId = ?2")
+    @Query("update Message m set m.read = true where m.toUserId = ?1")
     void readAll(Long toUserId);
 
     @Query("select new com.izouma.jmrh.dto.MessageDTO(m, p, c) from Message m " +
@@ -39,4 +39,6 @@ public interface MessageRepo extends JpaRepository<Message, Long>, JpaSpecificat
             "left join Comment c on m.commentId = c.id " +
             "where m.sessionId = ?1 order by m.createdAt desc")
     Page<MessageDTO> all(String sessionId, Pageable pageable);
+
+    long countByToUserId(Long toUserId);
 }

+ 0 - 8
src/main/java/com/izouma/jmrh/repo/NotificationMessageRepo.java

@@ -1,8 +0,0 @@
-package com.izouma.jmrh.repo;
-
-import com.izouma.jmrh.domain.NotificationMessage;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-
-public interface NotificationMessageRepo extends JpaRepository<NotificationMessage, Long>, JpaSpecificationExecutor<NotificationMessage> {
-}

+ 0 - 1
src/main/java/com/izouma/jmrh/service/AuditHistoryService.java

@@ -16,7 +16,6 @@ public class AuditHistoryService {
     private OrgInfoRepo                 orgInfoRepo;
     private ResourceSupplyAndDemandRepo resourceSupplyAndDemandRepo;
     private PostRepo                    postRepo;
-    private NotificationMessageRepo     notificationMessageRepo;
 
 
     public AuditHistory updateState(AuditHistory auditHistory) {

+ 0 - 14
src/main/java/com/izouma/jmrh/service/NotificationMessageService.java

@@ -1,14 +0,0 @@
-package com.izouma.jmrh.service;
-
-import com.izouma.jmrh.repo.NotificationMessageRepo;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
-
-@Service
-@AllArgsConstructor
-public class NotificationMessageService {
-
-    private NotificationMessageRepo notificationMessageRepo;
-
-
-}

+ 1 - 1
src/main/java/com/izouma/jmrh/web/ArticleController.java

@@ -18,7 +18,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/article")
 @AllArgsConstructor
-public class ArticleController extends UtilBaseController {
+public class ArticleController extends BaseController {
     private ArticleService articleService;
     private ArticleRepo    articleRepo;
 

+ 0 - 148
src/main/java/com/izouma/jmrh/web/BaseController.java

@@ -71,35 +71,6 @@ public class BaseController {
         };
     }
 
-
-    public <T> Specification<T> getNeedAll(PageQuery pageQuery, Class<?> queryClass) {
-        return (Specification<T>) (root, criteriaQuery, criteriaBuilder) -> {
-            List<Predicate> or = new ArrayList<>();
-            List<Predicate> and = new ArrayList<>();
-            or.add(root.get("artNeed").isNotNull());
-            or.add(root.get("productNeed").isNotNull());
-            or.add(root.get("financingNeeds").isNotNull());
-            if (pageQuery.getQuery().get("user") != null) {
-                User user = (User) pageQuery.getQuery().get("user");
-                Class cla = queryClass;
-                Join<User, Collect> join = root.join("user", JoinType.LEFT);
-                ObjectMapper objectMapper = new ObjectMapper();
-                if (user.getId() != null && user.getId() > 0) {
-                    and.add(criteriaBuilder.equal(join.get("id"), user.getId()));
-                }
-            }
-
-            Predicate[] array_and = new Predicate[and.size()];
-            Predicate Pre_And = criteriaBuilder.and(and.toArray(array_and));
-
-            Predicate[] arrayOr = new Predicate[or.size()];
-            Predicate Pre_Or = criteriaBuilder.or(or.toArray(arrayOr));
-
-            /*criteriaBuilder.or(or.toArray(new Predicate[0]));*/
-            return criteriaQuery.where(Pre_And, Pre_Or).getRestriction();
-        };
-    }
-
     public static <T> Specification<T> toSpecification(PageQuery pageQuery, Class<?> queryClass) {
         return (Specification<T>) (root, criteriaQuery, criteriaBuilder) -> {
             List<Predicate> and = new ArrayList<>();
@@ -326,21 +297,6 @@ public class BaseController {
                         and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), DateTimeUtils
                                 .toLocalDateTime((String) value, "yyyy-MM-dd"))));
                     }
-                } else if (property.equals("resSnDPropertyList")) {
-                    String str = String.valueOf(value);
-                    if (StringUtils.isNotEmpty(str)) {
-                        Join<ResSnDProperty, Class> join = root.join(property, JoinType.LEFT);
-                        String[] split = str.split(";");
-                        for (String item : split) {
-                            String strItem = item.trim();
-                            String name = strItem.substring(strItem.indexOf(":") + 1, strItem.indexOf(","));
-                            String strValue = strItem.substring(strItem.indexOf("value:") + 6);
-                            if (StringUtils.isNotEmpty(strValue) && strValue.equals('0')) {
-                                and.add(criteriaBuilder.equal(join.get("name"), name));
-                                and.add(criteriaBuilder.equal(join.get("value"), strValue));
-                            }
-                        }
-                    }
                 } else {
                     and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), value)));
                 }
@@ -384,108 +340,4 @@ public class BaseController {
         log.error("no such field [{}] in class [{}]", property, className);
         return null;
     }
-
-
-    public <T> Specification<T> getNeedMessage(PageQuery pageQuery, Class<?> queryClass) {
-        return (Specification<T>) (root, criteriaQuery, criteriaBuilder) -> {
-            List<Predicate> and = new ArrayList<>();
-            List<Predicate> or = new ArrayList<>();
-            or.add(root.get("artNeed").isNotNull());
-            or.add(root.get("productNeed").isNotNull());
-            or.add(root.get("financingNeeds").isNotNull());
-            pageQuery.getQuery().forEach((property, value) -> {
-                Field field = getDeclaredField(queryClass, property);
-                if (field == null) return;
-                Class fieldType = field.getType();
-                if (fieldType == User.class) {
-                    if (property == "user") {
-                        Join<User, Message> join = root.join("user", JoinType.LEFT);
-                        ObjectMapper objectMapper = new ObjectMapper();
-                        User user = objectMapper.convertValue(value, User.class);
-                        if (user.getId() != null && user.getId() > 0) {
-                            and.add(criteriaBuilder.equal(join.get("id"), user.getId()));
-                        }
-                    } else {
-                        Join<User, Message> join = root.join("myUser", JoinType.LEFT);
-                        ObjectMapper objectMapper = new ObjectMapper();
-                        User user = objectMapper.convertValue(value, User.class);
-                        if (user.getId() != null && user.getId() > 0) {
-                            and.add(criteriaBuilder.equal(join.get("id"), user.getId()));
-                        }
-
-                    }
-                } else if (property == "onExist") {
-                    String[] split = String.valueOf(value).split(",");
-                    if (split.length > 1) {
-                        List<Predicate> or2 = new ArrayList<>();
-                        or2.add(criteriaBuilder.equal(root.get("onExist"), Long.parseLong(split[0])));
-                        or2.add(criteriaBuilder.equal(root.get("onExist"), Long.parseLong(split[1])));
-                        //and.add(criteriaBuilder.or(or.toArray(new Predicate[0])));
-                        Predicate[] array_or2 = new Predicate[or2.size()];
-                        Predicate Pre_Or2 = criteriaBuilder.or(or2.toArray(array_or2));
-                        and.add(criteriaBuilder.and(Pre_Or2));
-                    } else {
-                        and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), value)));
-                    }
-                }
-            });
-            Predicate[] array_and = new Predicate[and.size()];
-            Predicate Pre_And = criteriaBuilder.and(and.toArray(array_and));
-            Predicate[] arrayOr = new Predicate[or.size()];
-            Predicate Pre_Or = criteriaBuilder.or(or.toArray(arrayOr));
-            return criteriaQuery.where(Pre_And, Pre_Or).getRestriction();
-        };
-    }
-
-    public <T> Specification<T> getResMessage(PageQuery pageQuery, Class<?> queryClass) {
-        return (Specification<T>) (root, criteriaQuery, criteriaBuilder) -> {
-            List<Predicate> and = new ArrayList<>();
-            List<Predicate> or = new ArrayList<>();
-            or.add(root.get("product").isNotNull());
-            or.add(root.get("artProduct").isNotNull());
-            or.add(root.get("tresource").isNotNull());
-            pageQuery.getQuery().forEach((property, value) -> {
-                Field field = getDeclaredField(queryClass, property);
-                if (field == null) return;
-                Class fieldType = field.getType();
-                if (fieldType == User.class) {
-                    if (property == "user") {
-                        Join<User, Message> join = root.join("user", JoinType.LEFT);
-                        ObjectMapper objectMapper = new ObjectMapper();
-                        User user = objectMapper.convertValue(value, User.class);
-                        if (user.getId() != null && user.getId() > 0) {
-                            and.add(criteriaBuilder.equal(join.get("id"), user.getId()));
-                        }
-                    } else {
-                        Join<User, Message> join = root.join("myUser", JoinType.LEFT);
-                        ObjectMapper objectMapper = new ObjectMapper();
-                        User user = objectMapper.convertValue(value, User.class);
-                        if (user.getId() != null && user.getId() > 0) {
-                            and.add(criteriaBuilder.equal(join.get("id"), user.getId()));
-                        }
-
-                    }
-                } else if (property == "onExist") {
-                    String[] split = String.valueOf(value).split(",");
-                    if (split.length > 1) {
-                        List<Predicate> or2 = new ArrayList<>();
-                        or2.add(criteriaBuilder.equal(root.get("onExist"), Long.parseLong(split[0])));
-                        or2.add(criteriaBuilder.equal(root.get("onExist"), Long.parseLong(split[1])));
-                        //and.add(criteriaBuilder.or(or.toArray(new Predicate[0])));
-                        Predicate[] array_or2 = new Predicate[or2.size()];
-                        Predicate Pre_Or2 = criteriaBuilder.or(or2.toArray(array_or2));
-                        and.add(criteriaBuilder.and(Pre_Or2));
-                    } else {
-                        and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), value)));
-                    }
-                }
-            });
-            Predicate[] array_and = new Predicate[and.size()];
-            Predicate Pre_And = criteriaBuilder.and(and.toArray(array_and));
-            Predicate[] arrayOr = new Predicate[or.size()];
-            Predicate Pre_Or = criteriaBuilder.or(or.toArray(arrayOr));
-
-            return criteriaQuery.where(Pre_And, Pre_Or).getRestriction();
-        };
-    }
 }

+ 3 - 2
src/main/java/com/izouma/jmrh/web/DataTypeController.java

@@ -1,4 +1,5 @@
 package com.izouma.jmrh.web;
+
 import com.izouma.jmrh.domain.DataType;
 import com.izouma.jmrh.service.DataTypeService;
 import com.izouma.jmrh.dto.PageQuery;
@@ -17,9 +18,9 @@ import java.util.List;
 @RestController
 @RequestMapping("/dataType")
 @AllArgsConstructor
-public class DataTypeController extends UtilBaseController {
+public class DataTypeController extends BaseController {
     private DataTypeService dataTypeService;
-    private DataTypeRepo dataTypeRepo;
+    private DataTypeRepo    dataTypeRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 6 - 1
src/main/java/com/izouma/jmrh/web/MessageController.java

@@ -64,8 +64,13 @@ public class MessageController extends BaseController {
         ExcelUtils.export(response, data);
     }
 
+    @GetMapping("/unreadNum")
+    public long unreadNum() {
+        return messageRepo.countByToUserId(SecurityUtils.getAuthenticatedUser().getId());
+    }
+
     @GetMapping("/readAll")
-    public void realAll(@RequestParam String sessionId) {
+    public void realAll(@RequestParam(required = false) String sessionId) {
         messageService.readAll(SecurityUtils.getAuthenticatedUser().getId(), sessionId);
     }
 

+ 0 - 60
src/main/java/com/izouma/jmrh/web/NotificationMessageController.java

@@ -1,60 +0,0 @@
-package com.izouma.jmrh.web;
-
-import com.izouma.jmrh.domain.NotificationMessage;
-import com.izouma.jmrh.dto.PageQuery;
-import com.izouma.jmrh.exception.BusinessException;
-import com.izouma.jmrh.repo.NotificationMessageRepo;
-import com.izouma.jmrh.service.NotificationMessageService;
-import com.izouma.jmrh.utils.ObjUtils;
-import com.izouma.jmrh.utils.excel.ExcelUtils;
-import lombok.AllArgsConstructor;
-import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.List;
-
-@RestController
-@RequestMapping("/notificationMessage")
-@AllArgsConstructor
-public class NotificationMessageController extends BaseController {
-    private NotificationMessageService notificationMessageService;
-    private NotificationMessageRepo notificationMessageRepo;
-
-    //@PreAuthorize("hasRole('ADMIN')")
-    @PostMapping("/save")
-    public NotificationMessage save(@RequestBody NotificationMessage record) {
-        if (record.getId() != null) {
-            NotificationMessage orig = notificationMessageRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
-            ObjUtils.merge(orig, record);
-            return notificationMessageRepo.save(orig);
-        }
-        return notificationMessageRepo.save(record);
-    }
-
-
-    //@PreAuthorize("hasRole('ADMIN')")
-    @GetMapping("/all")
-    public Page<NotificationMessage> all(PageQuery pageQuery) {
-        return notificationMessageRepo.findAll(toSpecification(pageQuery, NotificationMessage.class), toPageRequest(pageQuery));
-    }
-
-    @GetMapping("/get/{id}")
-    public NotificationMessage get(@PathVariable Long id) {
-        return notificationMessageRepo.findById(id).orElseThrow(new BusinessException("无记录"));
-    }
-
-    @PostMapping("/del/{id}")
-    public void del(@PathVariable Long id) {
-        notificationMessageRepo.deleteById(id);
-    }
-
-    @GetMapping("/excel")
-    @ResponseBody
-    public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
-        List<NotificationMessage> data = all(pageQuery).getContent();
-        ExcelUtils.export(response, data);
-    }
-}
-

+ 0 - 185
src/main/java/com/izouma/jmrh/web/UtilBaseController.java

@@ -1,185 +0,0 @@
-package com.izouma.jmrh.web;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.izouma.jmrh.annotations.Searchable;
-import com.izouma.jmrh.domain.*;
-import com.izouma.jmrh.dto.PageQuery;
-import com.izouma.jmrh.utils.DateTimeUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.jpa.domain.Specification;
-
-import javax.persistence.criteria.Join;
-import javax.persistence.criteria.JoinType;
-import javax.persistence.criteria.Predicate;
-import java.lang.reflect.Field;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.regex.Pattern;
-
-@SuppressWarnings("ALL")
-@Slf4j
-public class UtilBaseController {
-    public PageRequest toPageRequest(PageQuery pageQuery) {
-        PageRequest pageRequest;
-        if (StringUtils.isNotEmpty(pageQuery.getSort())) {
-            List<Sort.Order> orders = new ArrayList<>();
-            for (String sortStr : pageQuery.getSort().split(";")) {
-                String direction = "asc";
-                String prop = sortStr;
-                if (sortStr.contains(",asc") || sortStr.contains(",desc")) {
-                    prop = sortStr.split(",")[0];
-                    direction = sortStr.split(",")[1];
-                }
-                orders.add("asc".equals(direction) ? Sort.Order.asc(prop) : Sort.Order.desc(prop));
-            }
-            pageRequest = PageRequest.of(pageQuery.getPage(), pageQuery.getSize(), Sort.by(orders));
-        } else {
-            pageRequest = PageRequest.of(pageQuery.getPage(), pageQuery.getSize());
-        }
-        return pageRequest;
-    }
-
-
-    public <T> Specification<T> toSpecification(PageQuery pageQuery, Class<?> queryClass) {
-        return (Specification<T>) (root, criteriaQuery, criteriaBuilder) -> {
-            List<Predicate> and = new ArrayList<>();
-            pageQuery.getQuery().forEach((property, value) -> {
-                if (value == null) {
-                    return;
-                }
-                if (String.class.equals(value.getClass())) {
-                    if (StringUtils.isEmpty((String) value)) {
-                        return;
-                    }
-                }
-                Field field = getDeclaredField(queryClass, property);
-                if (field == null) return;
-                Class fieldType = field.getType();
-                if (Enum.class.isAssignableFrom(fieldType)) {
-                    if (value instanceof Collection) {
-                        if (!((Collection) value).isEmpty()) {
-                            List list = new ArrayList();
-                            for (Object o : ((Collection) value)) {
-                                list.add(Enum.valueOf(fieldType, String.valueOf(o)));
-                            }
-                            and.add(root.get(property).in(list));
-                        }
-                    } else if (value instanceof String && StringUtils.isNotEmpty((String) value)) {
-                        if (((String) value).contains(",")) {
-                            String[] arr = ((String) value).split(",");
-                            List list = new ArrayList();
-                            for (String s : arr) {
-                                list.add(Enum.valueOf(fieldType, s));
-                            }
-                            and.add(root.get(property).in(list));
-                        } else {
-                            and.add(criteriaBuilder.and(criteriaBuilder
-                                    .equal(root.get(property), Enum.valueOf(fieldType, String.valueOf(value)))));
-                        }
-                    }
-                } else if (LocalDateTime.class == fieldType) {
-                    if (value instanceof List) {
-                        List list = (List) value;
-                        if (list.size() == 1) {
-                            LocalDateTime start = DateTimeUtils
-                                    .toLocalDateTime((String) list.get(0), "yyyy-MM-dd HH:mm:ss");
-                            and.add(criteriaBuilder.greaterThanOrEqualTo(root.get(property), start));
-                        } else if (list.size() == 2) {
-                            LocalDateTime end = DateTimeUtils
-                                    .toLocalDateTime((String) list.get(1), "yyyy-MM-dd HH:mm:ss");
-                            and.add(criteriaBuilder.lessThanOrEqualTo(root.get(property), end));
-                        }
-                    } else if (value instanceof String && Pattern
-                            .matches("^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$", (String) value)) {
-                        String[] arr = ((String) value).split(",");
-                        LocalDateTime start = DateTimeUtils.toLocalDateTime(arr[0], "yyyy-MM-dd HH:mm:ss");
-                        and.add(criteriaBuilder.greaterThanOrEqualTo(root.get(property), start));
-                        LocalDateTime end = DateTimeUtils.toLocalDateTime(arr[1], "yyyy-MM-dd HH:mm:ss");
-                        and.add(criteriaBuilder.lessThanOrEqualTo(root.get(property), end));
-                    } else {
-                        and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), DateTimeUtils
-                                .toLocalDateTime((String) value, "yyyy-MM-dd HH:mm:ss"))));
-                    }
-                } else if (LocalDate.class == fieldType) {
-                    if (value instanceof List) {
-                        List list = (List) value;
-                        if (list.size() == 1) {
-                            LocalDate start = DateTimeUtils
-                                    .toLocalDate((String) list.get(0), "yyyy-MM-dd");
-                            and.add(criteriaBuilder.greaterThanOrEqualTo(root.get(property), start));
-                        } else if (list.size() == 2) {
-                            LocalDate end = DateTimeUtils
-                                    .toLocalDate((String) list.get(1), "yyyy-MM-dd");
-                            and.add(criteriaBuilder.lessThanOrEqualTo(root.get(property), end));
-                        }
-                    } else if (value instanceof String && Pattern
-                            .matches("^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$", (String) value)) {
-                        String[] arr = ((String) value).split(",");
-                        LocalDate start = DateTimeUtils.toLocalDate(arr[0], "yyyy-MM-dd");
-                        and.add(criteriaBuilder.greaterThanOrEqualTo(root.get(property), start));
-                        LocalDate end = DateTimeUtils.toLocalDate(arr[1], "yyyy-MM-dd");
-                        and.add(criteriaBuilder.lessThanOrEqualTo(root.get(property), end));
-                    } else {
-                        and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), DateTimeUtils
-                                .toLocalDateTime((String) value, "yyyy-MM-dd"))));
-                    }
-                } else if (fieldType == DataType.class) {
-                    Class cla = queryClass;
-                    Join<DataType, Class> join = root.join(property, JoinType.LEFT);
-                    ObjectMapper objectMapper = new ObjectMapper();
-                    DataType articleType = objectMapper.convertValue(value, DataType.class);
-                    if (StringUtils.isNotEmpty(articleType.getKeyType())) {
-                        and.add(criteriaBuilder.equal(join.get("keyType"), articleType.getKeyType()));
-                    }
-                    if (articleType.getId() != null && articleType.getId() > 0) {
-                        and.add(criteriaBuilder.equal(join.get("id"), articleType.getId()));
-                    }
-
-                } else {
-                    and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), value)));
-                }
-            });
-            if (StringUtils.isNotEmpty(pageQuery.getSearch())) {
-                Field[] fields = queryClass.getDeclaredFields();
-                List<Predicate> or = new ArrayList<>();
-                try {
-                    if (StringUtils.isNumeric(pageQuery.getSearch())) {
-                        or.add(criteriaBuilder.equal(root.get("id"), Long.parseLong(pageQuery.getSearch())));
-                    }
-                } catch (Exception ignored) {
-                }
-                for (Field field : fields) {
-                    Searchable annotation = field.getAnnotation(Searchable.class);
-                    if (annotation == null) {
-                        continue;
-                    }
-                    if (!annotation.value()) {
-                        continue;
-                    }
-                    or.add(criteriaBuilder.like(root.get(field.getName()), "%" + pageQuery.getSearch() + "%"));
-                }
-                and.add(criteriaBuilder.or(or.toArray(new Predicate[0])));
-            }
-            return criteriaBuilder.and(and.toArray(new Predicate[0]));
-        };
-    }
-
-    private Field getDeclaredField(Class<?> clazz, String property) {
-        String className = clazz.getName();
-        while (clazz != null && clazz != Object.class) {
-            try {
-                return clazz.getDeclaredField(property);
-            } catch (NoSuchFieldException ignored) {
-            }
-            clazz = clazz.getSuperclass();
-        }
-        log.error("no such field [{}] in class [{}]", property, className);
-        return null;
-    }
-}