From 50c5c7cb69da0bdcb87f634c7da86aebc19e1f10 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 28 十月 2022 17:38:12 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/all/BaseQueryService.java |   47 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 46 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/lf/server/service/all/BaseQueryService.java b/src/main/java/com/lf/server/service/all/BaseQueryService.java
index c1b90a4..07eb3b2 100644
--- a/src/main/java/com/lf/server/service/all/BaseQueryService.java
+++ b/src/main/java/com/lf/server/service/all/BaseQueryService.java
@@ -56,10 +56,55 @@
      * @param wrapper
      * @param filter
      */
-    public void addFilterWrapper(QueryWrapper<Object> wrapper, String filter) {
+    public <T> void addFilterWrapper(QueryWrapper<T> wrapper, String filter) {
         if (StringHelper.isEmpty(filter)) {
             return;
         }
+
+        String[] strs = filter.trim().split(" (?i)and ");
+        for (String str : strs) {
+            int start = str.indexOf(" ");
+            if (start == -1) {
+                continue;
+            }
+            int end = str.indexOf(" ", start + 1);
+            if (end == -1) {
+                continue;
+            }
+
+            String field = str.substring(0, start).trim();
+            String express = str.substring(start + 1, end).trim().toLowerCase();
+            String value = str.substring(end + 1).trim();
+            addWrapper(wrapper, field, express, value);
+        }
+    }
+
+    private <T> void addWrapper(QueryWrapper<T> wrapper, String field, String express, String value) {
+        switch (express) {
+            case "like":
+                wrapper.like(field, value);
+                break;
+            case ">":
+                wrapper.gt(field, value);
+                break;
+            case ">=":
+                wrapper.ge(field, value);
+                break;
+            case "<>":
+                wrapper.ne(field, value);
+                break;
+            case "=":
+                wrapper.eq(field, value);
+                break;
+            case "<":
+                wrapper.lt(field, value);
+                break;
+            case "<=":
+                wrapper.le(field, value);
+                break;
+            default:
+                break;
+        }
     }
 
     /**

--
Gitblit v1.9.3