ThirdPartPlatform.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. package com.hc.webapp.other;
  2. import android.support.annotation.NonNull;
  3. import com.hc.request.core.CallServer;
  4. import com.hc.request.core.DefaultCallback;
  5. import com.hc.request.core.IHttpCallback;
  6. import com.orhanobut.logger.Logger;
  7. import com.yanzhenjie.nohttp.RequestMethod;
  8. import com.yanzhenjie.nohttp.rest.StringRequest;
  9. import org.json.JSONException;
  10. import org.json.JSONObject;
  11. import java.util.Random;
  12. /**
  13. * @author jewel
  14. * @email jewelbao88@gmail.com
  15. * @gitsite https://github.com/jewelbao
  16. * @since 2019/1/9
  17. */
  18. public class ThirdPartPlatform {
  19. private static final int STEP_FIRST = 100;
  20. private static final int STEP_SECOND = 200;
  21. private static final int STEP_THIRD = 300;
  22. private static final int STEP_FOURTH = 400;
  23. private static final int STEP_FINAL = 500;
  24. public void start(String firstStepUrl, String secondStepUrl, String thirdStepUrl, String fourStepUrl, int k, final IHttpCallback<String> callback) {
  25. StringRequest request = new StringRequest(firstStepUrl, RequestMethod.GET);
  26. CallServer.getInstance().requestString(STEP_FIRST, request, new DefaultCallback<String>() {
  27. @Override
  28. public void onSuccess(int what, @NonNull String data) {
  29. //Log.d(TAG,"第一步:" + bodyStr);
  30. Logger.d("智慧平台请求第一步成功:%s", data);
  31. new Thread(() -> secondStep(secondStepUrl, thirdStepUrl, fourStepUrl, k, callback)).start();
  32. }
  33. @Override
  34. public void onError(int what, Throwable e) {
  35. callback.onError(STEP_FIRST, e);
  36. Logger.e(e, "智慧平台请求发生异常");
  37. }
  38. });
  39. }
  40. private void secondStep(String secondStepUrl, String thirdStepUrl, String fourStepUrl, int k, final IHttpCallback<String> callback) {
  41. if (callback == null) {
  42. return;
  43. }
  44. try {
  45. final int delayTime = getNum(2, 6);
  46. Logger.d("延迟%s秒", delayTime);
  47. Thread.sleep(delayTime * 1000);
  48. StringRequest request = new StringRequest(secondStepUrl, RequestMethod.POST);
  49. request.add("k", k);
  50. CallServer.getInstance().requestString(STEP_SECOND, request, new DefaultCallback<String>() {
  51. @Override
  52. public void onSuccess(int what, @NonNull String data) {
  53. Logger.d("智慧平台请求第二步成功:%s", data);
  54. new Thread(() -> thirdStep(thirdStepUrl, fourStepUrl, callback)).start();
  55. }
  56. @Override
  57. public void onError(int what, Throwable e) {
  58. callback.onError(STEP_SECOND, e);
  59. Logger.e(e, "智慧平台第二步请求发生异常");
  60. }
  61. });
  62. } catch (Exception e) {
  63. e.printStackTrace();
  64. callback.onError(STEP_SECOND, e);
  65. Logger.e(e, "智慧平台第二步逻辑处理异常");
  66. }
  67. }
  68. private void thirdStep(String thirdStepUrl, String fourStepUrl, final IHttpCallback<String> callback) {
  69. if (callback == null) {
  70. return;
  71. }
  72. try {
  73. final int delayTime = getNum(5, 9);
  74. Logger.d("延迟%s秒", delayTime);
  75. Thread.sleep(delayTime * 1000);
  76. StringRequest request = new StringRequest(thirdStepUrl, RequestMethod.GET);
  77. CallServer.getInstance().requestString(STEP_THIRD, request, new DefaultCallback<String>() {
  78. @Override
  79. public void onSuccess(int what, @NonNull String data) {
  80. Logger.d("智慧平台请求第三步成功:%s", data);
  81. thirdStepJudge(data, fourStepUrl, callback);
  82. }
  83. @Override
  84. public void onError(int what, Throwable e) {
  85. callback.onError(STEP_THIRD, e);
  86. Logger.e(e, "智慧平台第三步请求发生异常");
  87. }
  88. });
  89. } catch (Exception e) {
  90. e.printStackTrace();
  91. callback.onError(STEP_THIRD, e);
  92. Logger.e(e, "智慧平台第三步逻辑处理异常");
  93. }
  94. }
  95. private void thirdStepJudge(String data, String fourStepUrl, IHttpCallback<String> callback) {
  96. try {
  97. JSONObject thirdResult = new JSONObject(data);
  98. if (thirdResult.has("result")) {
  99. String result = thirdResult.getString("result");
  100. if (result.equals("2")) {
  101. new Thread(() -> fourthStep(fourStepUrl, callback)).start();
  102. } else {
  103. callback.onFail(STEP_THIRD, data);
  104. }
  105. }
  106. } catch (JSONException e) {
  107. e.printStackTrace();
  108. callback.onError(STEP_THIRD, e);
  109. Logger.e(e, "智慧平台第三步逻辑处理异常");
  110. }
  111. }
  112. private void fourthStep(String fourStepUrl, final IHttpCallback<String> callback) {
  113. if (callback == null) {
  114. return;
  115. }
  116. try {
  117. JSONObject jsonObject = new JSONObject();
  118. jsonObject.put("productid", "");
  119. jsonObject.put("serviceid", "");
  120. jsonObject.put("name", "");
  121. jsonObject.put("price", "");
  122. jsonObject.put("producttype", "");
  123. jsonObject.put("starttime", "");
  124. jsonObject.put("endtime", "");
  125. jsonObject.put("continueable", "");
  126. jsonObject.put("point", "");
  127. jsonObject.put("authflag", "");
  128. jsonObject.put("contentid", "");
  129. StringRequest request = new StringRequest(fourStepUrl, RequestMethod.POST);
  130. request.setDefineRequestBodyForJson(jsonObject.toString());
  131. CallServer.getInstance().requestString(STEP_FOURTH, request, new DefaultCallback<String>() {
  132. @Override
  133. public void onSuccess(int what, @NonNull String data) {
  134. super.onSuccess(what, data);
  135. Logger.d("智慧平台请求第四步成功:%s", data);
  136. try {
  137. finalStep(data, callback);
  138. } catch (JSONException e) {
  139. e.printStackTrace();
  140. callback.onError(STEP_FINAL, e);
  141. Logger.e(e, "智慧平台最终请求发生异常");
  142. }
  143. }
  144. @Override
  145. public void onError(int what, Throwable e) {
  146. super.onError(what, e);
  147. callback.onError(STEP_FOURTH, e);
  148. Logger.e(e, "智慧平台第四步请求发生异常");
  149. }
  150. });
  151. } catch (Exception e) {
  152. e.printStackTrace();
  153. callback.onError(STEP_FOURTH, e);
  154. Logger.e(e, "智慧平台第四步逻辑处理异常");
  155. }
  156. }
  157. private void finalStep(String data, IHttpCallback<String> callback) throws JSONException {
  158. if (callback == null) {
  159. return;
  160. }
  161. JSONObject fourthResult = new JSONObject(data);
  162. if (fourthResult.has("result")) {
  163. String result = fourthResult.getString("result");
  164. if (result.equals("true")) {
  165. callback.onSuccess(STEP_FINAL, data);
  166. } else {
  167. callback.onFail(STEP_FINAL, data);
  168. }
  169. }
  170. }
  171. private int getNum(int startNum, int endNum) {
  172. if (endNum > startNum) {
  173. Random random = new Random();
  174. return random.nextInt(endNum - startNum) + startNum;
  175. }
  176. return 0;
  177. }
  178. }