From 735b8b4c7eea4a5a6d42f25f070944f85e9603d9 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 18 一月 2024 19:55:49 +0800
Subject: [PATCH] 分类查询接口优化
---
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java | 95 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java
index 64b0fc0..c015273 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java
@@ -6,14 +6,18 @@
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -24,6 +28,11 @@
* @date 2023/6/6 15:26
*/
public class UBCSCondition {
+
+ /**
+ * 绌烘牸
+ */
+ public static final String SPACE = " ";
public UBCSCondition() {
}
@@ -136,4 +145,90 @@
return qw;
}
+ public static String getWhereSqlByMap(Map<String, String> conditionMap){
+ List<String> whereSqlList = new ArrayList<>();
+ conditionMap.forEach((key,value)->{
+ String sql = "";
+ // 涓嶄负绌烘墠鍘绘嫾鎺�
+ if(!Func.hasEmpty(new Object[]{key, value}) && !key.endsWith("_ignore")){
+ if (key.endsWith("_like")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_like");
+ sql = field + SPACE + "LIKE" + SPACE + "'%" + value + "%'" + SPACE;
+ } else if (key.endsWith("_notequal")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_notequal");
+ sql = field + SPACE + " != " + value + SPACE;
+ } else if (key.endsWith("_likeleft")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_likeleft");
+ sql = field + SPACE + "LIKE" + SPACE + "%" + value + SPACE;
+ } else if (key.endsWith("_likeright")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_likeright");
+ sql = field + SPACE + "LIKE" + SPACE + value + "%" + SPACE;
+ } else if (key.endsWith("_notlike")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_notlike");
+ sql = field + SPACE + "NO LIKE" + SPACE + "%" + value + "%" + SPACE;
+ } else if (key.endsWith("_ge")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_ge");
+ sql = field + SPACE + " >= " + value + SPACE;
+ } else if (key.endsWith("_le")) {
+ //璇存槑鏄�<=鐨勩�傛垜浠渶瑕佸厛鑾峰彇涓�涓�
+ String field = UBCSSqlKeyword.getColumn(key, "_le");
+ sql = field + SPACE + " <= " + value + "" + SPACE;
+ } else if (key.endsWith("_gt")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_gt");
+ sql = field + SPACE + "> " + value + SPACE;
+ } else if (key.endsWith("_lt")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_lt");
+ sql = field + SPACE + "< " + value + SPACE;
+ } else if (key.endsWith("_datege")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_datege");
+ sql = field + SPACE + ">= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+ } else if (key.endsWith("_dategt")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_dategt");
+ sql = field + SPACE + "> '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+ } else if (key.endsWith("_dateequal")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_dateequal");
+ sql = field + SPACE + "= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+ } else if (key.endsWith("_datele")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_datele");
+ sql = field + SPACE + "<= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+ } else if (key.endsWith("_datelt")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_datelt");
+ sql = field + SPACE + "< '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+ } else if (key.endsWith("_null")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_null");
+ sql = field + SPACE + "IS NULL" + SPACE;
+ } else if (key.endsWith("_notnull")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_notnull");
+ sql = field + SPACE + "IS NOT NULL" + SPACE;
+ } else if (key.endsWith("_dateequal")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_dateequal");
+ sql = field + SPACE + "= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+ } else if (key.endsWith("_equal")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_equal");
+ sql = field + SPACE + "= '" + value + "'" + SPACE;
+ } else if(key.endsWith("_in")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_in");
+ sql = VciBaseUtil.toInSql(field,value);
+ } else if(key.endsWith("_notin")) {
+ String field = UBCSSqlKeyword.getColumn(key, "_notin");
+ sql = VciBaseUtil.toInSql(field,value);
+ }
+ if(!sql.isEmpty()){
+ whereSqlList.add(sql);
+ }
+ }
+ });
+ //缁勫悎璧锋潵
+ StringBuilder andSb = new StringBuilder();
+ whereSqlList.stream().forEach(s -> {
+ andSb.append(s).append(SPACE).append(QueryOptionConstant.AND).append(SPACE);
+ });
+ String andString = andSb.toString().trim();
+ String endWithSql = QueryOptionConstant.AND;
+ if (andString.endsWith(endWithSql)) {
+ andString = andString.substring(0, andString.length() - endWithSql.length());
+ }
+ return andString;
+ }
+
}
--
Gitblit v1.9.3