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.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.PreferencesUtils; 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 detachView() { } public void loginSuccess(List userBean) { if (userBean==null) { ToastUtils.showShort("登录失败请重试"); return; } if (userBean.size()==1) { CommonAppContext.getInstance().setUser(userBean.get(0)); // 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); } catch (Exception e) { e.printStackTrace(); } } else { EventBus.getDefault().post(userBean.get(0)); com.blankj.utilcode.util.ActivityUtils.startActivity(MainActivity.class); } }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); } // 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(ARouters.H5).withString("url", Constant.URL.URL_USER_YSXY).withString("title", "隐私协议").navigation(); } public void yhxy() { // ARouter.getInstance().build(ARouters.H5).withString("url", Constant.URL.URL_USER_YHXY).withString("title", "用户协议").navigation(); } }