From 7f1356a447d290c186fe047af557e050497e39e4 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期一, 14 三月 2022 14:05:37 +0800
Subject: [PATCH] update 重构代码生成 多数据库sql加载 使用xml特性动态切换sql

---
 ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java
index 3d98def..c1adea3 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java
@@ -23,7 +23,7 @@
     /**
      * 鑾峰彇褰撳墠鏁版嵁搴撶被鍨�
      */
-    public static DataBaseType getDataBasyType() {
+    public static DataBaseType getDataBaseType() {
         DynamicRoutingDataSource ds = (DynamicRoutingDataSource) SpringUtils.getBean(DataSource.class);
         DataSource dataSource = ds.determineDataSource();
         try {
@@ -36,26 +36,35 @@
     }
 
     public static boolean isMySql() {
-        return DataBaseType.MY_SQL == getDataBasyType();
+        return DataBaseType.MY_SQL == getDataBaseType();
     }
 
     public static boolean isOracle() {
-        return DataBaseType.ORACLE == getDataBasyType();
+        return DataBaseType.ORACLE == getDataBaseType();
     }
 
     public static boolean isPostgerSql() {
-        return DataBaseType.POSTGRE_SQL == getDataBasyType();
+        return DataBaseType.POSTGRE_SQL == getDataBaseType();
     }
 
     public static boolean isSqlServer() {
-        return DataBaseType.SQL_SERVER == getDataBasyType();
+        return DataBaseType.SQL_SERVER == getDataBaseType();
     }
 
     public static String findInSet(Object var1, String var2) {
-        DataBaseType dataBasyType = getDataBasyType();
+        DataBaseType dataBasyType = getDataBaseType();
+        String var = Convert.toStr(var1);
         if (dataBasyType == DataBaseType.SQL_SERVER) {
-            return "charindex(" + Convert.toStr(var1) + ", " + var2 + ") <> 0";
+            // charindex(',100,' , ',0,100,101,') <> 0
+            return "charindex('," + var + ",' , ','+" + var2 + "+',') <> 0";
+        } else if (dataBasyType == DataBaseType.POSTGRE_SQL) {
+            // (select position(',100,' in ',0,100,101,')) <> 0
+            return "(select position('," + var + ",' in ','||" + var2 + "||',')) <> 0";
+        } else if (dataBasyType == DataBaseType.ORACLE) {
+            // instr(',0,100,101,' , ',100,') <> 0
+            return "instr(','||" + var2 + "||',' , '," + var + ",') <> 0";
         }
-        return "find_in_set(" + Convert.toStr(var1) + ", " + var2 + ") <> 0";
+        // find_in_set(100 , '0,100,101')
+        return "find_in_set(" + var + " , " + var2 + ") <> 0";
     }
 }

--
Gitblit v1.9.3