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