HomePresenter.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. package com.sunzee.mvp.home;
  2. import android.content.Intent;
  3. import android.os.Bundle;
  4. import android.util.Log;
  5. import android.widget.Toast;
  6. import com.google.gson.Gson;
  7. import com.orhanobut.hawk.Hawk;
  8. import com.sunzee.R;
  9. import com.sunzee.base.BaseApplication;
  10. import com.sunzee.base.BasePresenter;
  11. import com.sunzee.model.Heartbeat;
  12. import com.sunzee.model.HttpResult;
  13. import com.sunzee.model.domain.ApkInfoBean;
  14. import com.sunzee.model.domain.Name;
  15. import com.sunzee.retrofit.ApiCallback;
  16. import com.sunzee.service.DownServer;
  17. import com.sunzee.utils.FileUtil;
  18. import com.sunzee.utils.SharedPreferencesUtils;
  19. import com.sunzee.utils.ToastUtil;
  20. import com.sunzee.utils.UiUtil;
  21. import java.text.SimpleDateFormat;
  22. import java.util.Calendar;
  23. import java.util.HashMap;
  24. import java.util.Map;
  25. /**
  26. * 后台首页 presenter
  27. */
  28. public class HomePresenter extends BasePresenter<HomeView> {
  29. private static final String TAG = "HomePresenter";
  30. private Intent downloadApkIntent;
  31. public Intent getDownloadApkIntent() {
  32. return downloadApkIntent;
  33. }
  34. public HomePresenter(HomeView view) {
  35. attachView(view);
  36. }
  37. public void connectionSystem(String text) {
  38. SharedPreferencesUtils.setParam(Name.CONNECT_STATE, 1);
  39. mvpView.showLoading();
  40. if (Heartbeat.clientId == null || Heartbeat.clientId.equals("")) {
  41. ToastUtil.showToast(UiUtil.getStringRes(R.string.idsb));
  42. return;
  43. }
  44. SharedPreferencesUtils.setParam(Name.CONNECT_STATE, 2);
  45. Heartbeat.deviceId = FileUtil.getDeviceId();
  46. SharedPreferencesUtils.setParam(Name.CONNECT_STATE, -1);
  47. Map<String, String> params = new HashMap<>();
  48. params.put("clientId", Heartbeat.deviceId);
  49. params.put("managerId", text);
  50. params.put("gtClientId", Heartbeat.clientId);
  51. Heartbeat.managerId = text;
  52. addSubscription(apiStores.init(params), new ApiCallback<HttpResult<String>>() {
  53. @Override
  54. public void onSuccess(HttpResult<String> model) {
  55. Log.d(TAG, "onSuccess: " + model);
  56. if (model.getData()==null) {
  57. mvpView.initSuccess(model.getErrorMsg());
  58. }else if (model.getErrorMsg()==null){
  59. mvpView.initSuccess(model.getData());
  60. }
  61. }
  62. @Override
  63. public void onFailure(String msg) {
  64. Log.d(TAG, "onFailure: " + msg);
  65. }
  66. @Override
  67. public void onFinish() {
  68. mvpView.hideLoading();
  69. }
  70. });
  71. }
  72. /**
  73. * 获取下载连接
  74. */
  75. public void updataapk() {
  76. Log.d(TAG, "updataapk: ");
  77. Map<String, String> map = new HashMap<>();
  78. map.put("model", "A");
  79. addSubscription(apiStores.updataAPK(map), new ApiCallback<HttpResult<String>>() {
  80. @Override
  81. public void onSuccess(HttpResult<String> model) {
  82. Log.d(TAG, "onSuccess: "+model);
  83. if (model.getData()!=null) {
  84. Gson gson=new Gson();
  85. ApkInfoBean apkInfoBean = gson.fromJson(model.getData(), ApkInfoBean.class);
  86. mvpView.updataSuccess(apkInfoBean);
  87. }else if(model.getErrorMsg()!=null){
  88. mvpView.updataFailure(model.getErrorMsg());
  89. }
  90. }
  91. @Override
  92. public void onFailure(String msg) {
  93. Log.d(TAG, "onFailure: "+msg);
  94. }
  95. @Override
  96. public void onFinish() {
  97. }
  98. });
  99. }
  100. /**
  101. * 下载apk
  102. *
  103. * @param url 地址
  104. * @param version 版本号(用于起名)
  105. */
  106. public void downloadApk(String url, int version) {
  107. //开始下载
  108. downloadApkIntent = new Intent(BaseApplication.getContext(), DownServer.class);
  109. Bundle bundle = new Bundle();
  110. bundle.putString("downloadApkUrl", url);
  111. bundle.putString("title", "mht" + ".apk");
  112. bundle.putString("downloadtype", "apk");
  113. downloadApkIntent.putExtra("download", bundle);
  114. BaseApplication.getContext().startService(downloadApkIntent);
  115. }
  116. public void isCleaned() {
  117. addSubscription(apiStores.getBackgroundTime(), new ApiCallback<HttpResult<String>>() {
  118. @Override
  119. public void onSuccess(HttpResult<String> model) {
  120. try {
  121. String timedata = model.getData();
  122. Calendar calendar = Calendar.getInstance();
  123. calendar.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timedata));
  124. //第一次就会出现报错。
  125. Long overdueDate = (Long) Hawk.get(Name.OVERDUE_DATE);//购买的到期的时间
  126. Long timeInMillis = calendar.getTimeInMillis();//当前时间
  127. String data = (String) Hawk.get(Name.REMAINING);
  128. long remaining = Long.valueOf(data);
  129. Log.d(TAG, "onSuccess: 时间过期remaining" + remaining);
  130. //如果时间没过期,那么可以继续制作
  131. if (overdueDate > timeInMillis) {
  132. Log.d(TAG, "onSuccess: 没有过期");
  133. ToastUtil.showToast("按天数清洗");
  134. //发送开始清洗的订单。
  135. getCleanReport(0);
  136. //如果还有次那么就开始购买。
  137. } else if (remaining > 0) {
  138. Log.d(TAG, "onSuccess: 时间过期,按次数计算");
  139. ToastUtil.showToast("按次数清洗");
  140. Hawk.put(Name.REMAINING, String.valueOf(remaining - 1));
  141. //发送开始清洗的订单。
  142. getCleanReport(0);
  143. } else {
  144. Log.d(TAG, "onSuccess: 全部过期,全部不能清洗");
  145. ToastUtil.showToast("已过期,请充值后使用哦。");
  146. }
  147. } catch (Exception e) {
  148. }
  149. }
  150. @Override
  151. public void onFailure(String msg) {
  152. }
  153. @Override
  154. public void onFinish() {
  155. }
  156. });
  157. }
  158. private void getCleanReport(int type) {
  159. Map<String, String> params = new HashMap<>();
  160. params.put("clientId", Heartbeat.deviceId);
  161. params.put("type", type + "");
  162. params.put("water", 1 + "");
  163. params.put("electricity", 1 + "");
  164. addSubscription(apiStores.getCleanReport(params), new ApiCallback<HttpResult<String>>() {
  165. @Override
  166. public void onSuccess(HttpResult<String> model) {
  167. if ("success".equals(model.getData())) {
  168. mvpView.startClean();
  169. } else {
  170. mvpView.haveExpired();
  171. }
  172. }
  173. @Override
  174. public void onFailure(String msg) {
  175. }
  176. @Override
  177. public void onFinish() {
  178. }
  179. });
  180. }
  181. }