浏览代码

[회원가입][New] 회원 가입 완료 후 로그인 실행

hyodong.min 7 年之前
父节点
当前提交
2437c76a2c

+ 3 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/model/SignUpModel.java

@@ -114,6 +114,9 @@ public class SignUpModel extends Model {
     Log.i("APP# SignUpModel | saveUserId", "| userId: " + userId);
     SuperModel.getInstance().setUserId(userId);
   }
+  public String getUserId() {
+    return SuperModel.getInstance().getUserId();
+  }
 
   /**
    * 핀 저장
@@ -233,7 +236,6 @@ public class SignUpModel extends Model {
     else {
       // 필수 항목 체크 완료;
 
-      // fixme 이메일을 입력하지 않았음
       MemberJoinRequestBean bean = new MemberJoinRequestBean("", mobileAuthBean.getName(), SuperModel.getInstance().getDeviceUuid());
 
       disposable.add(

+ 51 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/signup/SignUpAgreePresenter.java

@@ -3,13 +3,23 @@
  */
 package kr.co.zumo.app.lifeplus.view.presenter.signup;
 
+import android.util.Log;
+
 import java.util.List;
 
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+import kr.co.zumo.app.lifeplus.bean.api.LoginBean;
 import kr.co.zumo.app.lifeplus.bean.api.PolicyBean;
+import kr.co.zumo.app.lifeplus.bean.api.UserNoBean;
 import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
 import kr.co.zumo.app.lifeplus.model.SignUpModel;
+import kr.co.zumo.app.lifeplus.model.SuperModel;
+import kr.co.zumo.app.lifeplus.network.api.LifeplusAPIRepository;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.command.ActivityChangeCommand;
 import kr.co.zumo.app.lifeplus.view.command.FragmentChangeCommand;
 import kr.co.zumo.app.lifeplus.view.dialog.AlertDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogBase;
@@ -37,6 +47,7 @@ public class SignUpAgreePresenter extends Presenter<SignUpModel, ISignUpAgreeVie
   protected boolean isSaved = false;
   protected boolean isViewReady = false;
   DialogBase alertDialog;
+  Disposable disposable;
 
   public SignUpAgreePresenter(SignUpModel model, ISignUpAgreeView view) {
     super(model, view);
@@ -72,6 +83,11 @@ public class SignUpAgreePresenter extends Presenter<SignUpModel, ISignUpAgreeVie
       alertDialog.dispose();
       alertDialog = null;
     }
+
+    if (null != disposable) {
+      disposable.dispose();
+      disposable = null;
+    }
   }
 
   @Override
@@ -89,7 +105,7 @@ public class SignUpAgreePresenter extends Presenter<SignUpModel, ISignUpAgreeVie
           signUp();
         }
         else if (event.getInteger() == SignUpModel.EVENT_JOINED) {
-          onCommand(new FragmentChangeCommand(ScreenID.SIGN_UP_COMPLETED, ScreenID.DIRECTION_NEXT));
+          login();
         }
         break;
       case Event.ERROR:
@@ -108,6 +124,40 @@ public class SignUpAgreePresenter extends Presenter<SignUpModel, ISignUpAgreeVie
     }
   }
 
+  private void login() {
+    disposable = new LifeplusAPIRepository().selectMember(new UserNoBean(model.getUserId()))
+      .subscribeOn(Schedulers.io())
+      .observeOn(AndroidSchedulers.mainThread())
+      .subscribe(loginResultBean -> {
+        Log.i("APP# SignUpAgreePresenter | login", "| loginResultBean: " + loginResultBean.toPrettyJson());
+        if (loginResultBean.isSuccess()) {
+          LoginBean loginBean = loginResultBean.getData();
+          if (loginBean.isNormal()) {
+            // token 저장
+            SuperModel.getInstance().setToken(loginBean.getToken());
+            onCommand(new FragmentChangeCommand(ScreenID.SIGN_UP_COMPLETED, ScreenID.DIRECTION_NEXT));
+          }
+          else {
+            if (loginBean.getBlockStatus().equals(LoginBean.LOCK_STATUS_BLOCK)) {
+              // 블럭 계정
+              onCommand(new ActivityChangeCommand(ScreenID.ACTIVITY_MEMBER_BLOCK, ScreenID.DIRECTION_NEXT));
+            }
+            else if (loginBean.getMemberStatus().equals(LoginBean.USER_STATUS_REST)) {
+              // 휴면 계정
+              onCommand(new ActivityChangeCommand(ScreenID.ACTIVITY_MEMBER_REST, ScreenID.DIRECTION_NEXT));
+            }
+          }
+        }
+        else {
+          // 서버와 통신 완료 후 에러 리턴
+          showErrorPopup("login - " + loginResultBean.getReturnMessage());
+        }
+      }, e -> {
+        // 서버와 통신이 되지 않은 에러
+        showErrorPopup("login - " + e.getLocalizedMessage());
+      });
+  }
+
   private void showErrorPopup(String errorMessage) {
 
     alertDialog = DialogBuilder.create(DialogID.ALERT)