Просмотр исходного кода

修复多参数逗号分隔的问题

RuoYi лет назад: 4
Родитель
Сommit
eb5df8834b
1 измененных файлов с 11 добавлено и 11 удалено
  1. 11 11
      ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java

+ 11 - 11
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java

@@ -110,30 +110,30 @@ public class JobInvokeUtil
110
         {
110
         {
111
             return null;
111
             return null;
112
         }
112
         }
113
-        String[] methodParams = methodStr.split(",(?=(?:[^\']*\"[^\']*\')*[^\']*$)");
113
+        String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)");
114
         List<Object[]> classs = new LinkedList<>();
114
         List<Object[]> classs = new LinkedList<>();
115
         for (int i = 0; i < methodParams.length; i++)
115
         for (int i = 0; i < methodParams.length; i++)
116
         {
116
         {
117
             String str = StringUtils.trimToEmpty(methodParams[i]);
117
             String str = StringUtils.trimToEmpty(methodParams[i]);
118
-            // String字符串类型,包含'
119
-            if (StringUtils.contains(str, "'"))
118
+            // String字符串类型,以'或"开头
119
+            if (StringUtils.startsWithAny(str, "'", "\""))
120
             {
120
             {
121
-                classs.add(new Object[] { StringUtils.replace(str, "'", ""), String.class });
121
+                classs.add(new Object[] { StringUtils.substring(str, 1, str.length() - 1), String.class });
122
             }
122
             }
123
             // boolean布尔类型,等于true或者false
123
             // boolean布尔类型,等于true或者false
124
-            else if (StringUtils.equals(str, "true") || StringUtils.equalsIgnoreCase(str, "false"))
124
+            else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str))
125
             {
125
             {
126
                 classs.add(new Object[] { Boolean.valueOf(str), Boolean.class });
126
                 classs.add(new Object[] { Boolean.valueOf(str), Boolean.class });
127
             }
127
             }
128
-            // long长整形,包含L
129
-            else if (StringUtils.containsIgnoreCase(str, "L"))
128
+            // long长整形,以L结尾
129
+            else if (StringUtils.endsWith(str, "L"))
130
             {
130
             {
131
-                classs.add(new Object[] { Long.valueOf(StringUtils.replaceIgnoreCase(str, "L", "")), Long.class });
131
+                classs.add(new Object[] { Long.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Long.class });
132
             }
132
             }
133
-            // double浮点类型,包含D
134
-            else if (StringUtils.containsIgnoreCase(str, "D"))
133
+            // double浮点类型,以D结尾
134
+            else if (StringUtils.endsWith(str, "D"))
135
             {
135
             {
136
-                classs.add(new Object[] { Double.valueOf(StringUtils.replaceIgnoreCase(str, "D", "")), Double.class });
136
+                classs.add(new Object[] { Double.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Double.class });
137
             }
137
             }
138
             // 其他类型归类为整形
138
             // 其他类型归类为整形
139
             else
139
             else