package com.qxcm.modulelogin.present; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import com.alibaba.android.arouter.launcher.ARouter; import com.alipay.sdk.app.AuthTask; import com.blankj.utilcode.util.AppUtils; import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.ToastUtils; import com.qxcm.modulelogin.activity.ImproveInfoActivity; import com.qxcm.modulelogin.activity.LoginActivity; import com.qxcm.modulelogin.activity.SwitchAccountsActivity; import com.qxcm.modulemain.activity.MainActivity; import com.qxcm.moduleutil.activity.IPresenter; import com.qxcm.moduleutil.base.CommonAppContext; import com.qxcm.moduleutil.bean.UserBean; import com.qxcm.moduleutil.http.BaseObserver; import com.qxcm.moduleutil.presenter.BasePresenter; import com.qxcm.moduleutil.utils.ARouteConstants; import com.qxcm.moduleutil.utils.PreferencesUtils; import com.qxcm.moduleutil.utils.SpUtil; import com.tencent.mm.opensdk.modelmsg.SendAuth; import com.tencent.mm.opensdk.openapi.IWXAPI; import org.greenrobot.eventbus.EventBus; import java.util.List; import java.util.Map; import io.reactivex.disposables.Disposable; public class LoginPresenter extends BasePresenter implements LoginContacter.ILoginPre { public LoginPresenter(LoginContacter.View view, Context context) { super(view, context); } @Override public void sendCode(String phoneNumber, int type) { api.sendCode(phoneNumber, "default", new BaseObserver() { @Override public void onSubscribe(Disposable d) { addDisposable(d); } @Override public void onNext(Object o) { MvpRef.get().sendCodeSuccess1(o + ""); } }); } /** * 登录 * * @param mobile 手机号 * @param password 密码 * @param code 验证码 * @param type 1:手机号登录 2:密码登录 */ @Override public void login(String mobile, String password, String code, int type) { if (type == 1) { api.login(mobile, code, new BaseObserver>() { @Override public void onSubscribe(Disposable d) { addDisposable(d); } @Override public void onNext(List userBeans) { loginSuccess(userBeans); } }); } else if (type == 2) { api.userLogin(mobile, password, new BaseObserver>() { @Override public void onSubscribe(Disposable d) { addDisposable(d); } @Override public void onNext(List userBeans) { loginSuccess(userBeans); } }); } } /** * 支付宝登录 * * @param auth_code * @param type type=1:微信登录;type=2:支付宝登录 */ @Override public void oauthLogin(String auth_code, int type) { api.authCode(auth_code, type, new BaseObserver>() { @Override public void onSubscribe(Disposable d) { addDisposable(d); } @Override public void onNext(List userBeans) { loginSuccess(userBeans); } }); } @Override public void switchAccounts(String loginId) { api.switchAccounts(loginId, new BaseObserver>() { @Override public void onSubscribe(Disposable d) { addDisposable(d); } @Override public void onNext(List userBeans) { loginSuccess(userBeans); } }); } @Override public void forgotPassword(String new_password, String mobile, String sms_code) { api.forgotPassword(new_password, mobile, sms_code, new BaseObserver() { @Override public void onSubscribe(Disposable d) { addDisposable(d); } @Override public void onNext(String s) { MvpRef.get().ysxlSuccess(s); } }); } //一键登陆 @Override public void oauthLoginLogin(String auth_code) { api.oauthLogin(auth_code, new BaseObserver>() { @Override public void onSubscribe(Disposable d) { addDisposable(d); } @Override public void onNext(List userBeans) { loginSuccess(userBeans); } }); } @Override public void detachView() { } public void loginSuccess(List userBean) { if (userBean == null) { ToastUtils.showShort("登录失败请重试"); return; } if (userBean.size() == 1) { CommonAppContext.getInstance().setUser(userBean.get(0)); if (userBean.get(0).getAuth() == 1) { SpUtil.setRealName(true); } else { SpUtil.setRealName(false); } // PreferencesUtils.putString( CommonAppContext.getInstance(), "mobile", userBean.get()); if (isViewAttach()) { // MvpRef.get().disLoadings(); } if (userBean.get(0).getSex() == 0) { try { Intent intent = new Intent(com.blankj.utilcode.util.ActivityUtils.getTopActivity(), ImproveInfoActivity.class); Bundle bundle = new Bundle(); bundle.putSerializable("userBean", userBean.get(0)); intent.putExtras(bundle); com.blankj.utilcode.util.ActivityUtils.startActivity(intent); com.blankj.utilcode.util.ActivityUtils.getTopActivity().finish(); } catch (Exception e) { e.printStackTrace(); } } else { EventBus.getDefault().post(userBean.get(0)); com.blankj.utilcode.util.ActivityUtils.startActivity(MainActivity.class); com.blankj.utilcode.util.ActivityUtils.getTopActivity().finish(); } } else { Intent intent = new Intent(com.blankj.utilcode.util.ActivityUtils.getTopActivity(), SwitchAccountsActivity.class); Bundle bundle = new Bundle(); bundle.putSerializable("userBean", userBean.get(0)); intent.putExtras(bundle); com.blankj.utilcode.util.ActivityUtils.startActivity(intent); com.blankj.utilcode.util.ActivityUtils.getTopActivity().finish(); } // EventBus.getDefault().post(new LoginFinishEvent()); // EventBus.getDefault().post(new SplashFinishEvent()); // AppLog.setUserUniqueID(userBean.getUser_id()); // 设置您自己的账号体系ID, 并保证其唯一性 ! } public void authorization(String type) { if (type.equals("wx")) { if (!AppUtils.isAppInstalled("com.tencent.mm")) { ToastUtils.showShort("请安装微信客户端"); return; } // IWXAPI api = WXEntryActivity.getWXAPI(); // final SendAuth.Req req = new SendAuth.Req(); // req.scope = "snsapi_userinfo"; // 只能填 snsapi_userinfo // req.state = "wechat_sdk_demo_test"; // api.sendReq(req); } else if (type.equals("zfb")) { // Map result = authTask.authV2(authInfo, true); api.authorization(new BaseObserver() { @Override public void onSubscribe(Disposable d) { addDisposable(d); } @Override public void onNext(String s) { MvpRef.get().authorizationSuccess(s); } }); } } public void ysxl() { ARouter.getInstance().build(ARouteConstants.H5).withString("url",CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl() + "/api/Page/page_show?id=4").withString("title", "隐私协议").navigation(); } public void yhxy() { ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl() + "/api/Page/page_show?id=6").withString("title", "用户协议").navigation(); } }