|
19 | 19 | import java.net.URLDecoder; |
20 | 20 | import java.rmi.AccessException; |
21 | 21 | import java.util.ArrayList; |
22 | | -import java.util.Arrays; |
23 | 22 | import java.util.HashMap; |
24 | 23 | import java.util.List; |
25 | 24 | import java.util.Map; |
|
31 | 30 |
|
32 | 31 | import zuo.biao.apijson.JSON; |
33 | 32 | import zuo.biao.apijson.StringUtil; |
| 33 | +import zuo.biao.apijson.Table; |
34 | 34 | import zuo.biao.apijson.server.sql.AccessVerifier; |
35 | 35 | import zuo.biao.apijson.server.sql.QueryHelper; |
36 | 36 |
|
@@ -156,106 +156,6 @@ private JSONObject fillTarget(JSONObject target, final JSONObject request, Strin |
156 | 156 | return null; |
157 | 157 | } |
158 | 158 |
|
159 | | - // //TODO 方法一 :逻辑错了,不是填充target里的key,而是把request对应的所有key-value填充至target |
160 | | - // Set<String> set = target.keySet(); |
161 | | - // if (set != null) { |
162 | | - // String value; |
163 | | - // JSONObject child; |
164 | | - // for (String key : set) { |
165 | | - // value = target.getString(key); |
166 | | - // if (DISALLOW_COLUMNS.equals(key)) { |
167 | | - // if (isContainKeyInArray(request, StringUtil.split(value))) { |
168 | | - // throw new IllegalArgumentException("不允许传[" + value + "]内的任何字段!"); |
169 | | - // } |
170 | | - // } else if (NECESSARY_COLUMNS.equals(key)) { |
171 | | - // if (isContainAllKeyInArray(request, StringUtil.split(value)) == false) { |
172 | | - // throw new IllegalArgumentException(requestName + "缺少[" + value + "]内的某些字段!"); |
173 | | - // } |
174 | | - // } |
175 | | - // |
176 | | - // child = JSON.parseObject(value); |
177 | | - // if (child == null) {//key - value |
178 | | - // target.put(key, request.getString(key));//提取key-value |
179 | | - // } else { //object |
180 | | - // target.put(key, filterTarget(child, request.getJSONObject(key), key));//往下一级提取 |
181 | | - // } |
182 | | - // } |
183 | | - // } |
184 | | - |
185 | | - |
186 | | - |
187 | | - |
188 | | - // // 方法二:行不通,target外层可能加上tag,也可能不加 |
189 | | - // String necessarys = StringUtil.getNoBlankString(target.getString(NECESSARY_COLUMNS)); |
190 | | - // String disallows = StringUtil.getNoBlankString(target.getString(DISALLOW_COLUMNS)); |
191 | | - // |
192 | | - // |
193 | | - // //提取必须的字段 <<<<<<<<<<<<<<<<<<< |
194 | | - // String[] necessaryColumns = StringUtil.split(necessarys); |
195 | | - // String value; |
196 | | - // if (necessaryColumns != null) { |
197 | | - // for (String column : necessaryColumns) { |
198 | | - // if (StringUtil.isNotEmpty(column, true) == false) { |
199 | | - // continue; |
200 | | - // } |
201 | | - // value = request.getString(column); |
202 | | - // if (StringUtil.isNotEmpty(value, true) == false) { |
203 | | - // throw new IllegalArgumentException(requestName + "缺少[" + necessarys + "]内的字段 " + column + " !"); |
204 | | - // } |
205 | | - // target.put(column, value);//提取key-value |
206 | | - // request.remove(column); |
207 | | - // } |
208 | | - // target.put(NECESSARY_COLUMNS, necessarys); |
209 | | - // target.put(DISALLOW_COLUMNS, disallows); |
210 | | - // } |
211 | | - // //提取提取必须的字段 >>>>>>>>>>>>>>>>>>> |
212 | | - // |
213 | | - // //排除不允许的字段,提取可选字段 <<<<<<<<<<<<<<<<<<< |
214 | | - // String[] disallowColumns = null; |
215 | | - // Set<String> set = request.keySet(); |
216 | | - // if ("!".equals(disallows)) {//所有非necessaryColumns |
217 | | - // if (set != null && set.isEmpty() == false) { |
218 | | - // throw new IllegalArgumentException("不允许传[" + disallows + "]内的任何字段!"); |
219 | | - // } |
220 | | - // } else { |
221 | | - // disallowColumns = StringUtil.split(disallows); |
222 | | - // } |
223 | | - // if (set != null) { |
224 | | - // for (String column : set) { |
225 | | - // if (StringUtil.isNotEmpty(column, true) == false) { |
226 | | - // continue; |
227 | | - // } |
228 | | - // if (isContainInArray(column, disallowColumns)) { |
229 | | - // throw new IllegalArgumentException("不允许传[" + disallows + "]内的任何字段!"); |
230 | | - // } |
231 | | - // target.put(column, request.getString(column));//提取可选字段 |
232 | | - //// request.remove(column); |
233 | | - // } |
234 | | - // |
235 | | - // target.put(NECESSARY_COLUMNS, necessarys); |
236 | | - // target.put(DISALLOW_COLUMNS, disallows); |
237 | | - // } |
238 | | - // //排除不允许的字段,提取可选字段 >>>>>>>>>>>>>>>>>>> |
239 | | - // |
240 | | - // |
241 | | - // set = target.keySet(); |
242 | | - // if (set != null) { |
243 | | - // JSONObject child; |
244 | | - // for (String key : set) { |
245 | | - // child = JSON.parseObject(target.getString(key)); |
246 | | - // if (child != null) { //object |
247 | | - // target.put(key, fillTarget(child, request.getJSONObject(key), key));//往下一级提取 |
248 | | - // } |
249 | | - // } |
250 | | - // } |
251 | | - // |
252 | | - // target.remove(DISALLOW_COLUMNS); |
253 | | - // target.remove(NECESSARY_COLUMNS); |
254 | | - |
255 | | - |
256 | | - |
257 | | - |
258 | | - |
259 | 159 | // 方法三:遍历request,transferredRequest只添加target所包含的object,且移除target中DISALLOW_COLUMNS,期间判断NECESSARY_COLUMNS是否都有 |
260 | 160 | String necessarys = StringUtil.getNoBlankString(target.getString(NECESSARY_COLUMNS)); |
261 | 161 | String[] necessaryColumns = StringUtil.split(necessarys); |
@@ -311,13 +211,16 @@ private JSONObject fillTarget(JSONObject target, final JSONObject request, Strin |
311 | 211 | throw new IllegalArgumentException(requestName |
312 | 212 | + "不能缺少 " + key + ":{} 等[" + necessarys + "]内的任何JSONObject!"); |
313 | 213 | } |
| 214 | + if (requestMethod == RequestMethod.POST && result.containsKey(Table.ID) == false) {//为注册用户返回id |
| 215 | + result.put(Table.ID, System.currentTimeMillis()); |
| 216 | + } |
314 | 217 | transferredRequest.put(key, result); |
315 | 218 | } |
316 | 219 | } |
317 | 220 | } |
318 | 221 | } |
319 | 222 |
|
320 | | - System.out.println(TAG + "filterTarget return target = " + JSON.toJSONString(target)); |
| 223 | + System.out.println(TAG + "filterTarget return transferredRequest = " + JSON.toJSONString(transferredRequest)); |
321 | 224 | return transferredRequest; |
322 | 225 | } |
323 | 226 |
|
@@ -345,92 +248,6 @@ private boolean isContainInArray(String key, String[] array) { |
345 | 248 | return false; |
346 | 249 | } |
347 | 250 |
|
348 | | - /**array至少有一个值在request的key中 |
349 | | - * @param request |
350 | | - * @param array |
351 | | - * @return |
352 | | - */ |
353 | | - private boolean isContainKeyInArray(JSONObject request, String[] array) { |
354 | | - if (array == null || array.length <= 0) { |
355 | | - System.out.println(TAG + "isContainKeyInArray array == null || array.length <= 0 >> return false;"); |
356 | | - return false; |
357 | | - } |
358 | | - if (request == null) { |
359 | | - System.out.println(TAG + "isContainKeyInArray request == null >> return false;"); |
360 | | - return false; |
361 | | - } |
362 | | - |
363 | | - for (String s : array) { |
364 | | - if (request.containsKey(s) == true) { |
365 | | - return true; |
366 | | - } |
367 | | - } |
368 | | - |
369 | | - return false; |
370 | | - } |
371 | | - /**array的所有值都在request的key中 |
372 | | - * @param request |
373 | | - * @param array |
374 | | - * @return |
375 | | - */ |
376 | | - private boolean isContainAllKeyInArray(JSONObject request, String[] array) { |
377 | | - if (array == null || array.length <= 0) { |
378 | | - System.out.println(TAG + "isContainAllKeyInArray array == null || array.length <= 0 >> return true;"); |
379 | | - return true; |
380 | | - } |
381 | | - if (request == null) { |
382 | | - System.out.println(TAG + "isContainAllKeyInArray request == null >> return false;"); |
383 | | - return false; |
384 | | - } |
385 | | - |
386 | | - for (String s : array) { |
387 | | - if (request.containsKey(s) == false) { |
388 | | - return false; |
389 | | - } |
390 | | - } |
391 | | - |
392 | | - return true; |
393 | | - } |
394 | | - // /**array至少有一个值在request的key中 |
395 | | - // * @param request |
396 | | - // * @param array |
397 | | - // * @return |
398 | | - // */ |
399 | | - // private boolean isContainKeyInArray(JSONObject request, String[] array) { |
400 | | - // return verifyContainKeyInArray(request, array, true); |
401 | | - // } |
402 | | - // /**array的所有值都在request的key中 |
403 | | - // * @param request |
404 | | - // * @param array |
405 | | - // * @return |
406 | | - // */ |
407 | | - // private boolean isContainAllKeyInArray(JSONObject request, String[] array) { |
408 | | - // return verifyContainKeyInArray(request, array, false); |
409 | | - // } |
410 | | - /**判断array的值和request的key的相同性 |
411 | | - * @param request |
412 | | - * @param array |
413 | | - * @param contain |
414 | | - * @return |
415 | | - */ |
416 | | - private boolean verifyContainKeyInArray(JSONObject request, String[] array, boolean contain) { |
417 | | - if (array == null || array.length <= 0) { |
418 | | - System.out.println(TAG + "verifyContainKeyInArray array == null || array.length <= 0 >> return ! contain;"); |
419 | | - return ! contain; |
420 | | - } |
421 | | - if (request == null) { |
422 | | - System.out.println(TAG + "verifyContainKeyInArray request == null >> return false;"); |
423 | | - return false; |
424 | | - } |
425 | | - |
426 | | - for (String s : array) { |
427 | | - if (request.containsKey(s) == contain) { |
428 | | - return contain; |
429 | | - } |
430 | | - } |
431 | | - |
432 | | - return ! contain; |
433 | | - } |
434 | 251 |
|
435 | 252 | /**获取单个对象,该对象处于parentObject内 |
436 | 253 | * @param parentPath parentObject的路径 |
|
0 commit comments