UserInfoSettingPresenter.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. package com.edufound.reader.presenter;
  2. import android.content.Intent;
  3. import android.widget.Toast;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.edufound.reader.apiserver.UserApiServerImpl;
  6. import com.edufound.reader.base.BaseActivity;
  7. import com.edufound.reader.base.BasePresenter;
  8. import com.edufound.reader.bean.HttpResultBean;
  9. import com.edufound.reader.bean.MyInfoBean;
  10. import com.edufound.reader.bean.UserBean;
  11. import com.edufound.reader.contract.UserInfoSettingContract;
  12. import com.edufound.reader.model.UserInfoSettingModel;
  13. import com.edufound.reader.receiver.BackPageReceiver;
  14. import com.edufound.reader.util.Consts;
  15. import com.edufound.reader.util.DeviceUuidFactory;
  16. import com.edufound.reader.util.EfunboxUtil;
  17. import com.edufound.reader.util.MMKVEncodeKey;
  18. import com.edufound.reader.util.MMKVUtil;
  19. import com.google.gson.reflect.TypeToken;
  20. import com.okhttplib.HttpInfo;
  21. import com.okhttplib.callback.Callback;
  22. import com.orhanobut.logger.Logger;
  23. import org.json.JSONException;
  24. import java.io.IOException;
  25. import java.util.HashMap;
  26. import java.util.Map;
  27. public class UserInfoSettingPresenter extends BasePresenter<UserInfoSettingContract.View> implements UserInfoSettingContract.Presenter {
  28. UserInfoSettingModel mModel;
  29. UserApiServerImpl mUserApi;
  30. String mGradeEnum;
  31. public UserInfoSettingPresenter() {
  32. mModel = new UserInfoSettingModel();
  33. mUserApi = new UserApiServerImpl();
  34. }
  35. @Override
  36. public void getMyInfo() {
  37. mUserApi.getMyInfo(mView.getActivity(), new Callback() {
  38. @Override
  39. public void onSuccess(HttpInfo info) throws IOException {
  40. HttpResultBean<MyInfoBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<MyInfoBean>>() {
  41. }.getType());
  42. Consts.setmConstsUserBean(bean.getData().getUser());
  43. mView.getUserInfoSuccess(bean.getData().getUser());
  44. mGradeEnum = bean.getData().getUser().getGrade();
  45. }
  46. @Override
  47. public void onFailure(HttpInfo info) throws IOException {
  48. }
  49. });
  50. }
  51. @Override
  52. public String getGradeEnum() {
  53. return mGradeEnum;
  54. }
  55. @Override
  56. public void upadteMyInfo(UserBean bean) {
  57. mModel.updateMyInfo(mView.getActivity(), ((BaseActivity) mView.getActivity()).getGson().toJson(bean), new Callback() {
  58. @Override
  59. public void onSuccess(HttpInfo info) throws IOException {
  60. HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
  61. }.getType());
  62. Consts.setmConstsUserBean(bean.getData());
  63. mView.getUserInfoSuccess(bean.getData());
  64. mGradeEnum = bean.getData().getGrade();
  65. }
  66. @Override
  67. public void onFailure(HttpInfo info) throws IOException {
  68. }
  69. });
  70. }
  71. @Override
  72. public void activityDestory() {
  73. Intent intent = new Intent(BackPageReceiver.BACK_HOME_REF_USER_INFO);
  74. mView.getActivity().sendBroadcast(intent);
  75. }
  76. @Override
  77. public void loginOut() {
  78. mUserApi.userLoginOut(mView.getActivity(), new Callback() {
  79. @Override
  80. public void onSuccess(HttpInfo info) throws IOException {
  81. Consts.setmConstsUserBean(null);
  82. Consts.setUID(Consts.getDefaultUid());
  83. mView.loginOutSuccess();
  84. Consts.setIsYFVip(false);
  85. }
  86. @Override
  87. public void onFailure(HttpInfo info) throws IOException {
  88. }
  89. });
  90. }
  91. @Override
  92. public void getBaiDuPhone(String token) {
  93. mUserApi.getBaiDuUserPhone(mView.getActivity(), token, new Callback() {
  94. @Override
  95. public void onSuccess(HttpInfo info) throws IOException {
  96. JSONObject object = JSONObject.parseObject(info.getRetDetail().toString());
  97. String phone = JSONObject.parseObject(object.getString("data")).getString("phone");
  98. registerMobile(phone);
  99. }
  100. @Override
  101. public void onFailure(HttpInfo info) throws IOException {
  102. Logger.e("获取百度手机号失败:" + info.getRetDetail());
  103. }
  104. });
  105. }
  106. @Override
  107. public void registerMobile(String phone) {
  108. if (EfunboxUtil.isMobileNO(phone)) {
  109. Map<String, String> map = new HashMap<>();
  110. map.put("deviceCode", DeviceUuidFactory.getUuid());
  111. map.put("channel", Consts.getUMengChannel());
  112. map.put("mobileNo", phone);
  113. if (MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE).equals("") || MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE) == null) {
  114. //如果没有,默认给一年级
  115. map.put("grade", "PRIMARY_FIRST_GRADE");
  116. } else {
  117. map.put("grade", MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE));
  118. }
  119. String json = ((BaseActivity) mView.getActivity()).getGson().toJson(map);
  120. mUserApi.registerMobile(mView.getActivity(), json, new Callback() {
  121. @Override
  122. public void onSuccess(HttpInfo info) throws IOException {
  123. HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
  124. }.getType());
  125. Consts.setUID(bean.getData().getUid());
  126. //用户是否登录,登录了,创建Consts的userbean
  127. String nickName = EfunboxUtil.setPhoneMiddle(bean.getData().getMobile());
  128. bean.getData().setNickName(nickName);
  129. Consts.setmConstsUserBean(bean.getData());
  130. }
  131. @Override
  132. public void onFailure(HttpInfo info) throws IOException {
  133. Toast.makeText(mView.getActivity(), "注册失败", Toast.LENGTH_SHORT).show();
  134. // CusToast.getInstance(mView.getActivity()).show("注册失败",2000);
  135. }
  136. });
  137. } else {
  138. Toast.makeText(mView.getActivity(), "手机号不正确", Toast.LENGTH_SHORT).show();
  139. }
  140. }
  141. @Override
  142. public void userCancellation() {
  143. mUserApi.userCancellation(mView.getActivity(), new Callback() {
  144. @Override
  145. public void onSuccess(HttpInfo info) throws IOException {
  146. Logger.e("注销成功:" + info.getRetDetail());
  147. Consts.setmConstsUserBean(null);
  148. Consts.setUID(Consts.getDefaultUid());
  149. mView.loginOutSuccess();
  150. Consts.setIsYFVip(false);
  151. }
  152. @Override
  153. public void onFailure(HttpInfo info) throws IOException {
  154. Logger.e("注销失败:" + info.getRetDetail());
  155. }
  156. });
  157. }
  158. @Override
  159. public void checkLogin() {
  160. mUserApi.isLogin(mView.getActivity(), DeviceUuidFactory.getUuid(), new Callback() {
  161. @Override
  162. public void onSuccess(HttpInfo info) throws IOException {
  163. try {
  164. Logger.e("info:" + info.getRetDetail());
  165. org.json.JSONObject object = new org.json.JSONObject(info.getRetDetail());
  166. if (object.getString("code").equals("300") || object.getInt("code") == 300) {
  167. } else {
  168. HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
  169. }.getType());
  170. Consts.setUID(bean.getData().getUid());
  171. //用户是否登录,登录了,创建Consts的userbean
  172. Consts.setmConstsUserBean(bean.getData());
  173. }
  174. } catch (JSONException e) {
  175. e.printStackTrace();
  176. } finally {
  177. //无论如何最后走判断
  178. //获取是否是vip
  179. EfunboxUtil.getYFVip(mView.getActivity(), null);
  180. }
  181. }
  182. @Override
  183. public void onFailure(HttpInfo info) throws IOException {
  184. EfunboxUtil.getYFVip(mView.getActivity(), null);
  185. }
  186. });
  187. }
  188. }