Skip to content

Commit ce7a099

Browse files
committed
Server:等价条件 key:value 不允许 JSONArray 类型;优化key:value不合法的提示
1 parent 78bcb3f commit ce7a099

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

APIJSON-Java-Server/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/AbstractSQLConfig.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,12 +1117,16 @@ else if (key.endsWith("<>")) {
11171117

11181118
@JSONField(serialize = false)
11191119
public String getEqualString(String key, Object value) {
1120+
if (value instanceof Collection<?>) {
1121+
throw new IllegalArgumentException(key + ":value 中value不合法!非PUT请求只支持 [Boolean, Number, String] 内的类型 !");
1122+
}
1123+
11201124
boolean not = key.endsWith("!"); // & | 没有任何意义,写法多了不好控制
11211125
if (not) {
11221126
key = key.substring(0, key.length() - 1);
11231127
}
11241128
if (StringUtil.isName(key) == false) {
1125-
throw new IllegalArgumentException("\"" + key + "\":value 中key不合法!不支持 ! 以外的逻辑符 !");
1129+
throw new IllegalArgumentException(key + ":value 中key不合法!不支持 ! 以外的逻辑符 !");
11261130
}
11271131
return getKey(key) + (not ? "!=" : "=") + getValue(value);
11281132
}
@@ -1189,7 +1193,7 @@ public String getSearchString(String key, Object[] values, int type) throws Ille
11891193
String condition = "";
11901194
for (int i = 0; i < values.length; i++) {
11911195
if (values[i] instanceof String == false) {
1192-
throw new IllegalArgumentException(key + "$\":value 中value的类型只能为String或String[]!");
1196+
throw new IllegalArgumentException(key + "$:value 中value的类型只能为String或String[]!");
11931197
}
11941198
condition += (i <= 0 ? "" : (Logic.isAnd(type) ? AND : OR)) + getLikeString(key, values[i]);
11951199
}
@@ -1252,7 +1256,7 @@ public String getRegExpString(String key, Object[] values, int type, boolean ign
12521256
String condition = "";
12531257
for (int i = 0; i < values.length; i++) {
12541258
if (values[i] instanceof String == false) {
1255-
throw new IllegalArgumentException(key + "$\":value 中value的类型只能为String或String[]!");
1259+
throw new IllegalArgumentException(key + "$:value 中value的类型只能为String或String[]!");
12561260
}
12571261
condition += (i <= 0 ? "" : (Logic.isAnd(type) ? AND : OR)) + getRegExpString(key, (String) values[i], ignoreCase);
12581262
}
@@ -1288,15 +1292,15 @@ public String getBetweenString(String key, Object value) {
12881292
key = key.substring(0, key.length() - 1);
12891293
}
12901294
if (StringUtil.isName(key) == false) {
1291-
throw new IllegalArgumentException(key + "%\":value 中key不合法!不支持 ! 以外的逻辑符 !");
1295+
throw new IllegalArgumentException(key + "%:value 中key不合法!不支持 ! 以外的逻辑符 !");
12921296
}
12931297

12941298
Object[] vs;
12951299
if (value instanceof String) {
12961300
vs = StringUtil.split((String) value);
12971301
// int index = ((String) value).indexOf(",");
12981302
// if (index < 0) {
1299-
// throw new IllegalArgumentException(key + "%\":value 中value的类型为 String 时必须包括逗号 , !前面缺省为 min(key) ,后面缺省为 max(key)");
1303+
// throw new IllegalArgumentException(key + "%:value 中value的类型为 String 时必须包括逗号 , !前面缺省为 min(key) ,后面缺省为 max(key)");
13001304
// }
13011305
// if (index == 0) {
13021306
// start = "(SELECT min(key) FROM getSQLTable())"
@@ -1306,17 +1310,17 @@ else if (value instanceof Collection<?>) {
13061310
vs = ((Collection<?>) value).toArray();
13071311
}
13081312
else {
1309-
throw new IllegalArgumentException(key + "%\":value 中value不合法!类型只能为 1个逗号分隔的String 或者 只有Boolean[2]或Number[2]或String[2] !");
1313+
throw new IllegalArgumentException(key + "%:value 中value不合法!类型只能为 1个逗号分隔的String 或者 只有Boolean[2]或Number[2]或String[2] !");
13101314
}
13111315

13121316
if (vs == null || vs.length != 2) {
1313-
throw new IllegalArgumentException(key + "%\":value 中value不合法!类型为 String 时必须包括1个逗号 , 且左右两侧都有值!类型为 JSONArray 时只能是 Boolean[2]或Number[2]或String[2] !");
1317+
throw new IllegalArgumentException(key + "%:value 中value不合法!类型为 String 时必须包括1个逗号 , 且左右两侧都有值!类型为 JSONArray 时只能是 Boolean[2]或Number[2]或String[2] !");
13141318
}
13151319

13161320
Object start = vs[0];
13171321
Object end = vs[1];
13181322
if (JSON.isBooleanOrNumberOrString(start) == false || JSON.isBooleanOrNumberOrString(end) == false) {
1319-
throw new IllegalArgumentException(key + "%\":value 中value不合法!类型为 String 时必须包括1个逗号 , 且左右两侧都有值!类型为 JSONArray 时只能是 Boolean[2]或Number[2]或String[2] !");
1323+
throw new IllegalArgumentException(key + "%:value 中value不合法!类型为 String 时必须包括1个逗号 , 且左右两侧都有值!类型为 JSONArray 时只能是 Boolean[2]或Number[2]或String[2] !");
13201324
}
13211325

13221326
return getKey(key) + (not ? NOT : "") + " BETWEEN " + getValue(start) + AND + getValue(end);
@@ -1445,7 +1449,7 @@ public String getContainString(String key, Object[] childs, int type) throws Ill
14451449
for (int i = 0; i < childs.length; i++) {
14461450
if (childs[i] != null) {
14471451
if (childs[i] instanceof JSON) {
1448-
throw new IllegalArgumentException(key + "<>\":value 中value类型不能为JSON!");
1452+
throw new IllegalArgumentException(key + "<>:value 中value类型不能为JSON!");
14491453
}
14501454
if (childs[i] instanceof String) {
14511455
childs[i] = "\"" + childs[i] + "\"";

0 commit comments

Comments
 (0)