|
2 | 2 |
|
3 | 3 | import com.javabaas.javasdk.callback.*; |
4 | 4 |
|
| 5 | +import java.text.SimpleDateFormat; |
5 | 6 | import java.util.*; |
6 | 7 |
|
7 | 8 | /** |
@@ -380,6 +381,113 @@ public void onFailure(JBException error) { |
380 | 381 | }); |
381 | 382 | } |
382 | 383 |
|
| 384 | + public static List<Long> getApiStat(JBApiStat apiStat) throws JBException { |
| 385 | + final List<Long>[] result = new List[]{null}; |
| 386 | + getApiStatFromJavabaas(true, apiStat, new JBApiStatListCallback() { |
| 387 | + @Override |
| 388 | + public void done(boolean success, List<Long> list, JBException e) { |
| 389 | + if (success) { |
| 390 | + result[0] = list; |
| 391 | + } else { |
| 392 | + JBExceptionHolder.add(e); |
| 393 | + } |
| 394 | + } |
| 395 | + }); |
| 396 | + if (JBExceptionHolder.exists()) { |
| 397 | + throw JBExceptionHolder.remove(); |
| 398 | + } |
| 399 | + return result[0]; |
| 400 | + } |
| 401 | + |
| 402 | + public static void getApiStatInBackground(JBApiStat apiStat, JBApiStatListCallback callback) { |
| 403 | + getApiStatFromJavabaas(false, apiStat, callback); |
| 404 | + } |
| 405 | + |
| 406 | + private static void getApiStatFromJavabaas(final boolean sync, final JBApiStat apiStat, final JBApiStatListCallback callback) { |
| 407 | + String path = JBHttpClient.getApiStatPath(); |
| 408 | + JBHttpParams params = getParamsFromApiStat(apiStat); |
| 409 | + |
| 410 | + JBHttpClient.INSTANCE().sendRequest(path, JBHttpMethod.GET, params, null, sync, new JBObjectCallback() { |
| 411 | + @Override |
| 412 | + public void onSuccess(JBResult result) { |
| 413 | + List<Long> list = getApiStatListFromMap(result.getData()); |
| 414 | + if (callback != null) { |
| 415 | + callback.done(true, list, null); |
| 416 | + } |
| 417 | + } |
| 418 | + |
| 419 | + @Override |
| 420 | + public void onFailure(JBException error) { |
| 421 | + if (callback != null) { |
| 422 | + callback.done(false, null, error); |
| 423 | + } |
| 424 | + } |
| 425 | + }); |
| 426 | + } |
| 427 | + |
| 428 | + public static void setAccount(AccountType type, Account account) throws JBException { |
| 429 | + setAccountToJavabaas(true, type, account, new JBSaveCallback() { |
| 430 | + @Override |
| 431 | + public void done(boolean success, JBException e) { |
| 432 | + if (!success) { |
| 433 | + JBExceptionHolder.add(e); |
| 434 | + } |
| 435 | + } |
| 436 | + }); |
| 437 | + if (JBExceptionHolder.exists()) { |
| 438 | + throw JBExceptionHolder.remove(); |
| 439 | + } |
| 440 | + } |
| 441 | + |
| 442 | + public static void setAccountInBackground(AccountType type, Account account, JBSaveCallback callback) { |
| 443 | + setAccountToJavabaas(false, type, account, callback); |
| 444 | + } |
| 445 | + |
| 446 | + private static void setAccountToJavabaas(final boolean sync, final AccountType type, final Account account, final JBSaveCallback callback) { |
| 447 | + String path = JBHttpClient.getAccountPath(type.getCode()); |
| 448 | + JBHttpClient.INSTANCE().sendRequest(path, JBHttpMethod.PUT, null, account, sync, new JBObjectCallback() { |
| 449 | + @Override |
| 450 | + public void onFailure(JBException error) { |
| 451 | + if (callback != null) { |
| 452 | + callback.done(false, error); |
| 453 | + } |
| 454 | + } |
| 455 | + |
| 456 | + @Override |
| 457 | + public void onSuccess(JBResult result) { |
| 458 | + if (callback != null) { |
| 459 | + callback.done(true, null); |
| 460 | + } |
| 461 | + } |
| 462 | + }); |
| 463 | + } |
| 464 | + |
| 465 | + private static List<Long> getApiStatListFromMap(Map<String, Object> map) { |
| 466 | + if (map == null || map.get("result") == null) {return new LinkedList<>();} |
| 467 | + List<Long> list = (List<Long>) map.get("result"); |
| 468 | + return list; |
| 469 | + } |
| 470 | + |
| 471 | + private static JBHttpParams getParamsFromApiStat(JBApiStat apiStat) { |
| 472 | + JBHttpParams params = new JBHttpParams(); |
| 473 | + if (!JBUtils.isEmpty(apiStat.getClazz())) { |
| 474 | + params.put("clazz", apiStat.getClazz()); |
| 475 | + } |
| 476 | + if (apiStat.getMethod() != null && !JBUtils.isEmpty(apiStat.getMethod().value)) { |
| 477 | + params.put("method", apiStat.getMethod().value); |
| 478 | + } |
| 479 | + if (!JBUtils.isEmpty(apiStat.getPlat())) { |
| 480 | + params.put("plat", apiStat.getPlat()); |
| 481 | + } |
| 482 | + if (!JBUtils.isEmpty(apiStat.getFrom())) { |
| 483 | + params.put("from", apiStat.getFrom()); |
| 484 | + } |
| 485 | + if (!JBUtils.isEmpty(apiStat.getTo())) { |
| 486 | + params.put("to", apiStat.getTo()); |
| 487 | + } |
| 488 | + return params; |
| 489 | + } |
| 490 | + |
383 | 491 | private static JBAppExport getAppExportFromMap(Map<String, Object> map) { |
384 | 492 | String exportStr = JBUtils.writeValueAsString(map); |
385 | 493 | JBAppExport appExport = JBUtils.readValue(exportStr, JBAppExport.class); |
@@ -703,4 +811,88 @@ public void setAppAccounts(AppAccounts appAccounts) { |
703 | 811 | } |
704 | 812 | } |
705 | 813 |
|
| 814 | + public static class JBApiStat { |
| 815 | + private String plat; |
| 816 | + private String clazz; |
| 817 | + private JBApiMethod method; |
| 818 | + private String from; |
| 819 | + private String to; |
| 820 | + |
| 821 | + public JBApiStat(String plat, String clazz, JBApiMethod method, String from, String to) { |
| 822 | + this.plat = plat; |
| 823 | + this.clazz = clazz; |
| 824 | + this.method = method; |
| 825 | + this.from = from; |
| 826 | + this.to = to; |
| 827 | + } |
| 828 | + |
| 829 | + public JBApiMethod getMethod() { |
| 830 | + return method; |
| 831 | + } |
| 832 | + |
| 833 | + public void setMethod(JBApiMethod method) { |
| 834 | + this.method = method; |
| 835 | + } |
| 836 | + |
| 837 | + public String getPlat() { |
| 838 | + return plat; |
| 839 | + } |
| 840 | + |
| 841 | + public void setPlat(String plat) { |
| 842 | + this.plat = plat; |
| 843 | + } |
| 844 | + |
| 845 | + public String getClazz() { |
| 846 | + return clazz; |
| 847 | + } |
| 848 | + |
| 849 | + public void setClazz(String clazz) { |
| 850 | + this.clazz = clazz; |
| 851 | + } |
| 852 | + |
| 853 | + public String getFrom() { |
| 854 | + return from; |
| 855 | + } |
| 856 | + |
| 857 | + public void setFrom(String from) { |
| 858 | + this.from = from; |
| 859 | + } |
| 860 | + |
| 861 | + public String getTo() { |
| 862 | + return to; |
| 863 | + } |
| 864 | + |
| 865 | + public void setTo(String to) { |
| 866 | + this.to = to; |
| 867 | + } |
| 868 | + } |
| 869 | + |
| 870 | + public static enum JBApiMethod { |
| 871 | + |
| 872 | + INSERT("insert"), |
| 873 | + UPDATE("update"), |
| 874 | + FIND("find"), |
| 875 | + DELETE("delete"); |
| 876 | + |
| 877 | + private String value; |
| 878 | + |
| 879 | + JBApiMethod(String value) { |
| 880 | + this.value = value; |
| 881 | + } |
| 882 | + |
| 883 | + @Override |
| 884 | + public String toString() { |
| 885 | + return value; |
| 886 | + } |
| 887 | + |
| 888 | + public static JBApiMethod get(String value) { |
| 889 | + JBApiMethod[] methods = JBApiMethod.class.getEnumConstants(); |
| 890 | + for (JBApiMethod method : methods) { |
| 891 | + if (method.value.equals(value)) { |
| 892 | + return method; |
| 893 | + } |
| 894 | + } |
| 895 | + return null; |
| 896 | + } |
| 897 | + } |
706 | 898 | } |
0 commit comments