Skip to content

Commit d67a97d

Browse files
committed
Server:同步eclipse版至idea版
1 parent 8510cca commit d67a97d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+129
-56
lines changed

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/DemoFunction.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/DemoObjectParser.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/DemoParser.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/DemoSQLConfig.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/DemoVerifier.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/FunctionList.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/StructureUtil.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/model/BaseModel.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/model/Comment.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/model/Login.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/model/Moment.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/model/Privacy.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/model/User.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/model/Verify.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/model/package-info.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONDemo/src/main/java/apijson/demo/server/package-info.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/JSONObject.java

100644100755
Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,10 @@ public static boolean isTableKey(String key) {
8484
//JSONObject内关键词 key <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
8585

8686

87-
public static final String KEY_ID = "id";
88-
public static final String KEY_ID_IN = KEY_ID + "{}";
87+
public static String KEY_ID = "id";
88+
public static String KEY_ID_IN = KEY_ID + "{}";
89+
public static String KEY_USER_ID = "userId";
90+
public static String KEY_USER_ID_IN = KEY_USER_ID + "{}";
8991

9092
/**set "id":id in Table layer
9193
* @param id
@@ -94,13 +96,28 @@ public static boolean isTableKey(String key) {
9496
public JSONObject setId(Long id) {
9597
return puts(KEY_ID, id);
9698
}
97-
/**set id{}:[] in Table layer
99+
/**set "id{}":[] in Table layer
98100
* @param list
99101
* @return
100102
*/
101103
public JSONObject setIdIn(List<Object> list) {
102104
return puts(KEY_ID_IN, list);
103105
}
106+
107+
/**set "userId":userId in Table layer
108+
* @param id
109+
* @return
110+
*/
111+
public JSONObject setUserId(Long id) {
112+
return puts(KEY_USER_ID, id);
113+
}
114+
/**set "userId{}":[] in Table layer
115+
* @param list
116+
* @return
117+
*/
118+
public JSONObject setUserIdIn(List<Object> list) {
119+
return puts(KEY_USER_ID_IN, list);
120+
}
104121

105122

106123
//@key关键字都放这个类 <<<<<<<<<<<<<<<<<<<<<<

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/JSONRequest.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/JSONResponse.java

100644100755
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ public JSONResponse(JSONObject object) {
6767

6868
public static final String KEY_CODE = "code";
6969
public static final String KEY_MSG = "msg";
70-
public static final String KEY_ID = "id";
71-
public static final String KEY_ID_IN = KEY_ID + "{}";
7270
public static final String KEY_COUNT = "count";
7371
public static final String KEY_TOTAL = "total";
7472

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/Log.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/MethodAccess.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/RequestMethod.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/RequestRole.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/SQL.java

100644100755
File mode changed.

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

100644100755
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,10 @@ public AbstractObjectParser(@NotNull JSONObject request, String parentPath, Stri
136136
*/
137137
@Override
138138
public AbstractObjectParser parseCorrect() throws Exception {
139-
Set<String> set = correct == null ? null : new HashSet<String>(correct.keySet());
139+
Set<String> set = correct == null ? null : new HashSet<>(correct.keySet());
140140

141141
if (set != null && set.isEmpty() == false) {//对每个需要校正的key进行正则表达式匹配校正
142-
corrected = new HashMap<String, String>();//TODO 返回全部correct内的内容,包括未校正的? correct);
142+
corrected = new HashMap<>();//TODO 返回全部correct内的内容,包括未校正的? correct);
143143

144144
String value; //13000082001
145145
String v; // phone,email,idCard

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

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import static zuo.biao.apijson.JSONObject.KEY_HAVING;
2222
import static zuo.biao.apijson.JSONObject.KEY_ID;
2323
import static zuo.biao.apijson.JSONObject.KEY_ID_IN;
24+
import static zuo.biao.apijson.JSONObject.KEY_USER_ID;
25+
import static zuo.biao.apijson.JSONObject.KEY_USER_ID_IN;
2426
import static zuo.biao.apijson.JSONObject.KEY_ORDER;
2527
import static zuo.biao.apijson.JSONObject.KEY_ROLE;
2628
import static zuo.biao.apijson.JSONObject.KEY_SCHEMA;
@@ -39,6 +41,7 @@
3941
import java.util.LinkedHashMap;
4042
import java.util.List;
4143
import java.util.Map;
44+
import java.util.Map.Entry;
4245
import java.util.Set;
4346

4447
import com.alibaba.fastjson.JSON;
@@ -511,16 +514,35 @@ public String getWhereString() throws Exception {
511514
* @throws Exception
512515
*/
513516
public static String getWhereString(RequestMethod method, Map<String, Object> where, boolean verifyName) throws Exception {
514-
Set<String> set = where == null ? null : where.keySet();
515-
if (set == null || set.isEmpty()) {
517+
Map<String, Object> where2 = where == null || where.isEmpty() ? null : new LinkedHashMap<String, Object>();
518+
if (where2 == null) {
516519
return "";
517520
}
518-
String whereString = "";
521+
522+
//强制排序,把id,id{},userId,userId{}放最前面,保证安全、优化性能
523+
Object id = where.remove(KEY_ID);
524+
Object idIn = where.remove(KEY_ID_IN);
525+
Object userId = where.remove(KEY_USER_ID);
526+
Object userIdIn = where.remove(KEY_USER_ID_IN);
527+
528+
where2.put(KEY_ID, id);
529+
where2.put(KEY_ID_IN, idIn);
530+
where2.put(KEY_USER_ID, userId);
531+
where2.put(KEY_USER_ID_IN, userIdIn);
532+
where2.putAll(where);
533+
534+
535+
Set<Entry<String, Object>> set = where2.entrySet();
536+
519537
boolean isFirst = true;
520-
521538
String condition;
522-
for (String key : set) {
523-
condition = getWhereItem(key, where.get(key), method, verifyName);
539+
String whereString = "";
540+
541+
for (Entry<String, Object> entry : set) {
542+
if (entry == null) {
543+
continue;
544+
}
545+
condition = getWhereItem(entry.getKey(), entry.getValue(), method, verifyName);
524546

525547
if (StringUtil.isEmpty(condition, true)) {//避免SQL条件连接错误
526548
continue;
@@ -530,6 +552,12 @@ public static String getWhereString(RequestMethod method, Map<String, Object> wh
530552

531553
isFirst = false;
532554
}
555+
556+
//还原where,后续可能用到
557+
where.put(KEY_ID, id);
558+
where.put(KEY_ID_IN, idIn);
559+
where.put(KEY_USER_ID, userId);
560+
where.put(KEY_USER_ID_IN, userIdIn);
533561

534562
String s = whereString.isEmpty() ? "" : " WHERE " + whereString;
535563

@@ -1041,8 +1069,7 @@ public static AbstractSQLConfig newSQLConfig(RequestMethod method, String table,
10411069
}
10421070
AbstractSQLConfig config = callback.getSQLConfig(method, table);
10431071

1044-
boolean isEmpty = request.isEmpty();
1045-
if (isEmpty) { // User:{} 这种空内容在查询时也有效
1072+
if (request.isEmpty()) { // User:{} 这种空内容在查询时也有效
10461073
return config; //request.remove(key); 前都可以直接return,之后必须保证 put 回去
10471074
}
10481075

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public JSONObject execute(SQLConfig config) throws Exception {
148148
result = AbstractParser.newResult(updateCount > 0 ? JSONResponse.CODE_SUCCESS : JSONResponse.CODE_NOT_FOUND
149149
, updateCount > 0 ? JSONResponse.MSG_SUCCEED : "可能对象不存在!");
150150

151-
//id或id{}一定有,一定会返回,不用抛异常来阻止关联写操作时前面错误导致后面无条件执行!
151+
//id,id{}至少一个会有,一定会返回,不用抛异常来阻止关联写操作时前面错误导致后面无条件执行!
152152
if (config.getId() > 0) {
153153
result.put(JSONResponse.KEY_ID, config.getId());
154154
} else {

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

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public static HashMap<RequestMethod, RequestRole[]> getAccessMap(MethodAccess ac
7878
return null;
7979
}
8080

81-
HashMap<RequestMethod, RequestRole[]> map = new HashMap<RequestMethod, RequestRole[]>();
81+
HashMap<RequestMethod, RequestRole[]> map = new HashMap<>();
8282
map.put(GET, access.GET());
8383
map.put(HEAD, access.HEAD());
8484
map.put(GETS, access.GETS());

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
File mode changed.

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

100644100755
Lines changed: 70 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
package zuo.biao.apijson.server;
1616

1717
import static zuo.biao.apijson.JSONObject.KEY_ID;
18-
import static zuo.biao.apijson.JSONObject.KEY_ID_IN;
18+
import static zuo.biao.apijson.JSONObject.KEY_USER_ID;
1919
import static zuo.biao.apijson.server.Operation.ADD;
2020
import static zuo.biao.apijson.server.Operation.DISALLOW;
2121
import static zuo.biao.apijson.server.Operation.NECESSARY;
@@ -82,7 +82,6 @@ public static JSONObject parseRequest(@NotNull final RequestMethod method, final
8282
return null;
8383
}
8484

85-
//TODO globleRole要不要改成@role? 只允许服务端Request表中加上可控的ADMIN角色
8685
if (RequestRole.get(request.getString(JSONRequest.KEY_ROLE)) == RequestRole.ADMIN) {
8786
throw new IllegalArgumentException("角色设置错误!不允许在写操作Request中传 " + name +
8887
":{ " + JSONRequest.KEY_ROLE + ":admin } !");
@@ -105,29 +104,8 @@ public JSONObject onParseJSONObject(String key, JSONObject tobj, JSONObject robj
105104
}
106105
} else {
107106
if (RequestMethod.isQueryMethod(method) == false) {
108-
//单个修改或删除
109-
Object id = robj.get(KEY_ID); //如果必须传 id ,可在Request表中配置necessary
110-
if (id != null) {
111-
if (id instanceof Number == false) {
112-
throw new IllegalArgumentException(method.name() + "请求," + name + "/" + key
113-
+ " 里面的 " + KEY_ID + ":value 中value的类型只能是Long!");
114-
}
115-
} else {
116-
//批量修改或删除
117-
Object arr = robj.get(KEY_ID_IN); //如果必须传 id{} ,可在Request表中配置necessary
118-
if (arr == null) {
119-
throw new IllegalArgumentException(method.name() + "请求," + name + "/" + key
120-
+ " 里面 " + KEY_ID + " 和 " + KEY_ID_IN + " 必须传其中一个!");
121-
}
122-
if (arr instanceof JSONArray == false) {
123-
throw new IllegalArgumentException(method.name() + "请求," + name + "/" + key
124-
+ " 里面的 " + KEY_ID_IN + ":value 中value的类型只能是 [Long] !");
125-
}
126-
if (((JSONArray)arr).size() > 10) { //不允许一次操作10条以上记录
127-
throw new IllegalArgumentException(method.name() + "请求," + name + "/" + key
128-
+ " 里面的 " + KEY_ID_IN + ":[] 中[]的长度不能超过10!");
129-
}
130-
}
107+
verifyId(method.name(), name, key, robj, KEY_ID, true);
108+
verifyId(method.name(), name, key, robj, KEY_USER_ID, false);
131109
}
132110
}
133111
}
@@ -137,8 +115,61 @@ public JSONObject onParseJSONObject(String key, JSONObject tobj, JSONObject robj
137115
});
138116

139117
}
118+
119+
/**
120+
* @param method
121+
* @param name
122+
* @param key
123+
* @param robj
124+
* @param idKey
125+
* @param atLeastOne 至少有一个不为null
126+
*/
127+
private static void verifyId(@NotNull String method, @NotNull String name, @NotNull String key
128+
, @NotNull JSONObject robj, @NotNull String idKey, boolean atLeastOne) {
129+
//单个修改或删除
130+
Object id = null;
131+
try {
132+
id = robj.getLong(idKey); //如果必须传 id ,可在Request表中配置NECESSARY
133+
} catch (Exception e) {
134+
throw new IllegalArgumentException(method + "请求," + name + "/" + key
135+
+ " 里面的 " + idKey + ":value 中value的类型只能是 Long !");
136+
}
137+
138+
//批量修改或删除
139+
String idInKey = idKey + "{}";
140+
141+
JSONArray idIn = null;
142+
try {
143+
idIn = robj.getJSONArray(idInKey); //如果必须传 id{} ,可在Request表中配置NECESSARY
144+
} catch (Exception e) {
145+
throw new IllegalArgumentException(method + "请求," + name + "/" + key
146+
+ " 里面的 " + idInKey + ":value 中value的类型只能是 [Long] !");
147+
}
148+
if (idIn == null) {
149+
if (atLeastOne && id == null) {
150+
throw new IllegalArgumentException(method + "请求," + name + "/" + key
151+
+ " 里面 " + idKey + " 和 " + idInKey + " 至少传其中一个!");
152+
}
153+
} else {
154+
if (idIn.size() > 10) { //不允许一次操作10条以上记录
155+
throw new IllegalArgumentException(method + "请求," + name + "/" + key
156+
+ " 里面的 " + idInKey + ":[] 中[]的长度不能超过10!");
157+
}
158+
//解决 id{}: ["1' OR 1='1'))--"] 绕过id{}限制
159+
//new ArrayList<Long>(idIn) 不能检查类型,Java泛型擦除问题,居然能把 ["a"] 赋值进去还不报错
160+
for (int i = 0; i < idIn.size(); i++) {
161+
try {
162+
idIn.getLong(i);
163+
} catch (Exception e) {
164+
throw new IllegalArgumentException(method + "请求," + name + "/" + key
165+
+ " 里面的 " + idInKey + ":[] 中所有项的类型都只能是Long!");
166+
}
167+
}
168+
}
169+
}
140170

141171

172+
142173
/**校验并将response转换为指定的内容和结构
143174
* @param method
144175
* @param name
@@ -229,7 +260,7 @@ public static JSONObject parse(String name, JSONObject target, JSONObject real
229260

230261
//解析内容<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
231262

232-
Set<Entry<String, Object>> set = new LinkedHashSet<Entry<String, Object>>(target.entrySet());
263+
Set<Entry<String, Object>> set = new LinkedHashSet<>(target.entrySet());
233264
if (set.isEmpty() == false) {
234265

235266
String key;
@@ -350,7 +381,7 @@ private static JSONObject operate(Operation opt, JSONObject targetChild, JSONObj
350381
}
351382

352383

353-
Set<Entry<String, Object>> set = new LinkedHashSet<Entry<String, Object>>(targetChild.entrySet());
384+
Set<Entry<String, Object>> set = new LinkedHashSet<>(targetChild.entrySet());
354385
String tk;
355386
Object tv;
356387

@@ -537,8 +568,8 @@ private static void sqlVerify(@NotNull String funChar, @NotNull JSONObject real,
537568
throw new IllegalArgumentException(rk + ":" + rv + "中value不合法!必须匹配 " + logic.getChar() + tv + " !");
538569
}
539570
}
540-
541-
571+
572+
542573
/**验证是否重复
543574
* @param table
544575
* @param key
@@ -568,16 +599,16 @@ public static void verifyRepeat(String table, String key, Object value, long exc
568599
if (exceptId > 0) {//允许修改自己的属性为该属性原来的值
569600
request.put(JSONRequest.KEY_ID + "!", exceptId);
570601
}
571-
// JSONObject repeat = new AbstractParser(HEAD, true).parseResponse(
572-
// new JSONRequest(table, request)
573-
// );
574-
// repeat = repeat == null ? null : repeat.getJSONObject(table);
575-
// if (repeat == null) {
576-
// throw new Exception("服务器内部错误 verifyRepeat repeat == null");
577-
// }
578-
// if (repeat.getIntValue(JSONResponse.KEY_COUNT) > 0) {
579-
// throw new ConflictException(key + ": " + value + " 已经存在,不能重复!");
580-
// }
602+
// JSONObject repeat = new AbstractParser(HEAD, true).parseResponse(
603+
// new JSONRequest(table, request)
604+
// );
605+
// repeat = repeat == null ? null : repeat.getJSONObject(table);
606+
// if (repeat == null) {
607+
// throw new Exception("服务器内部错误 verifyRepeat repeat == null");
608+
// }
609+
// if (repeat.getIntValue(JSONResponse.KEY_COUNT) > 0) {
610+
// throw new ConflictException(key + ": " + value + " 已经存在,不能重复!");
611+
// }
581612
}
582613

583614

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

100644100755
File mode changed.

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

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/exception/ConditionErrorException.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/exception/ConflictException.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/exception/NotExistException.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/exception/NotLoggedInException.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/exception/OutOfRangeException.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/model/Column.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/model/Document.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/model/Request.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/model/Response.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/model/Table.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/model/Test.java

100644100755
File mode changed.

APIJSON-Java-Server/APIJSON-Idea/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/model/package-info.java

100644100755
File mode changed.

0 commit comments

Comments
 (0)