注册/登录接口联调

This commit is contained in:
fengjignqi
2026-05-19 08:15:24 +08:00
parent cfa606f65e
commit c485b1e059
15 changed files with 342 additions and 134 deletions

View File

@@ -18,7 +18,7 @@ public class AppConfig {
// public static boolean IS_TEST_REQUEST = true; // public static boolean IS_TEST_REQUEST = true;
/**************************本地*******************************/ /**************************本地*******************************/
public static String BASE_URL = "http://192.168.1.67:8081/";//测试 public static String BASE_URL = "http://192.168.1.217:8081/";//测试
public static String BASE_URL_TWO = BASE_URL;//测试 public static String BASE_URL_TWO = BASE_URL;//测试
public static String BASE_URL_THREE = BASE_URL;//测试 public static String BASE_URL_THREE = BASE_URL;//测试
public static boolean IS_TEST_REQUEST = true; public static boolean IS_TEST_REQUEST = true;
@@ -116,4 +116,8 @@ public class AppConfig {
//用户分享链接 //用户分享链接
public static String USER_SHARE_URL = "https://sta.mingdengbazi.site/on/index.html?code="; public static String USER_SHARE_URL = "https://sta.mingdengbazi.site/on/index.html?code=";
//clientID 固定 token
public static String APP_CLIENT_ID = "428a8310cd442757ae699df5d894f051";
public static String APP_USER_TYPE = "app_user";
} }

View File

@@ -122,6 +122,11 @@ public class GuideActivity extends BaseActivity<GuideActivityLayoutBinding, Logi
super.initWidget(); super.initWidget();
} }
@Override
public void registerSuccess(BaseBean bean) {
}
@Override @Override
public void getPhoneCodeSuccess(BaseBean bean) { public void getPhoneCodeSuccess(BaseBean bean) {
} }

View File

@@ -5,7 +5,10 @@ import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.view.View; import android.view.View;
import com.ckkj.water.AppConfig;
import com.ckkj.water.login.LoginActivity; import com.ckkj.water.login.LoginActivity;
import com.ckkj.water.login.RegisterActivity;
import com.ckkj.water.login.RegisterSuccessActivity;
import com.gyf.immersionbar.ImmersionBar; import com.gyf.immersionbar.ImmersionBar;
import com.ckkj.water.ConstantUtil; import com.ckkj.water.ConstantUtil;
import com.ckkj.water.MyApplication; import com.ckkj.water.MyApplication;
@@ -88,9 +91,15 @@ public class LaunchActivity extends BaseActivity<GuideLayoutBinding, MainPresent
new Handler().postDelayed(new Runnable() { new Handler().postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
if(AppConfig.USER_LOGIN){
Intent intent = new Intent(mContext, MainActivity.class); Intent intent = new Intent(mContext, MainActivity.class);
startActivity(intent); startActivity(intent);
finish(); finish();
}else{
goTo(mContext, LoginActivity.class,null);
finish();
}
} }
}, 2000); }, 2000);

View File

@@ -102,6 +102,11 @@ public class ForgetPasswordActivity extends BaseActivity<RegisterLayoutBinding,
}; };
@Override
public void registerSuccess(BaseBean bean) {
}
@Override @Override
public void getPhoneCodeSuccess(BaseBean bean) { public void getPhoneCodeSuccess(BaseBean bean) {

View File

@@ -79,6 +79,7 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
setClick(viewBinding.tvGoRegister); setClick(viewBinding.tvGoRegister);
setClick(viewBinding.tvLanguage); setClick(viewBinding.tvLanguage);
setClick(viewBinding.tvResetPsd); setClick(viewBinding.tvResetPsd);
setClick(viewBinding.checkboxRead);
} }
private void setClick(View view) { private void setClick(View view) {
@@ -86,59 +87,74 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
} }
private void setupAgreementText() { private void setupAgreementText() {
String prefix = getString(R.string.login_agreement_prefix); //勾选协议,增加点击区域
String privacy = getString(R.string.login_privacy_policy); ClickUtil.addClickPart(viewBinding.checkboxRead,100);
String and = getString(R.string.login_and); TextView tvAgreement = findViewById(R.id.tv_agreement_full);
String userAgreement = getString(R.string.login_user_agreement); String content = "我已经阅读并同意智能浇灌《用户协议》、《隐私政策》";
String content = prefix + privacy + and + userAgreement;
SpannableString spannableString = new SpannableString(content); SpannableString spannableString = new SpannableString(content);
int privacyStart = prefix.length(); // 设置“用户协议”可点击
int privacyEnd = privacyStart + privacy.length();
ClickableSpan privacyPolicySpan = new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
Bundle bundle = new Bundle();
bundle.putInt("from_requse_code", WebviewUserAgreement.PRIVACY_CODE);
goToWihoutNoPresent(mContext, WebviewUserAgreement.class, bundle);
}
@Override
public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(ContextCompat.getColor(mContext, R.color.color_zhu));
ds.setUnderlineText(false);
}
};
spannableString.setSpan(privacyPolicySpan, privacyStart, privacyEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
int userStart = privacyEnd + and.length();
int userEnd = userStart + userAgreement.length();
ClickableSpan userAgreementSpan = new ClickableSpan() { ClickableSpan userAgreementSpan = new ClickableSpan() {
@Override @Override
public void onClick(@NonNull View widget) { public void onClick(@NonNull View widget) {
Bundle bundle = new Bundle(); // 跳转用户协议
bundle.putInt("from_requse_code", WebviewUserAgreement.AGREEMENT_CODE); // Bundle bundle = new Bundle();
goToWihoutNoPresent(mContext, WebviewUserAgreement.class, bundle); // bundle.putInt("from_requse_code", WebviewUserAgreement.AGREEMENT_CODE);
// goToWihoutNoPresent(mContext, WebviewUserAgreement.class,bundle);
ToastUtil.showShort(mContext,"用户协议");
} }
@Override @Override
public void updateDrawState(@NonNull TextPaint ds) { public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds); super.updateDrawState(ds);
ds.setColor(ContextCompat.getColor(mContext, R.color.color_zhu)); ds.setColor(ContextCompat.getColor(mContext, R.color.color_zhu)); // 设置颜色
ds.setUnderlineText(false); // 去掉下划线
}
};
int start1 = content.indexOf("《用户协议》");
int end1 = start1 + "《用户协议》".length();
spannableString.setSpan(userAgreementSpan, start1, end1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// 设置“隐私政策”可点击
ClickableSpan privacyPolicySpan = new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
// 跳转隐私政策
// Bundle bundleYS = new Bundle();
// bundleYS.putInt("from_requse_code",WebviewUserAgreement.PRIVACY_CODE);
// goToWihoutNoPresent(mContext, WebviewUserAgreement.class,bundleYS);
ToastUtil.showShort(mContext,"跳转隐私政策");
}
@Override
public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(ContextCompat.getColor(mContext, R.color.color_zhu)); // 设置颜色
ds.setUnderlineText(false); ds.setUnderlineText(false);
} }
}; };
spannableString.setSpan(userAgreementSpan, userStart, userEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); int start2 = content.indexOf("《隐私政策》");
int end2 = start2 + "《隐私政策》".length();
spannableString.setSpan(privacyPolicySpan, start2, end2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// viewBinding.tvAgreement.setText(spannableString); tvAgreement.setText(spannableString);
// viewBinding.tvAgreement.setMovementMethod(LinkMovementMethod.getInstance()); tvAgreement.setMovementMethod(LinkMovementMethod.getInstance()); // 开启点击事件
} }
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {
case R.id.checkbox_read:
if(mYinsiConfirm){
mYinsiConfirm = false;
viewBinding.checkboxRead.setChecked(false);
}else{
mYinsiConfirm = true;
viewBinding.checkboxRead.setChecked(true);
}
break;
case R.id.tv_go_register: case R.id.tv_go_register:
goTo(mContext, RegisterActivity.class,null); goTo(mContext, RegisterActivity.class,null);
break; break;
@@ -215,33 +231,40 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
// viewBinding.checkboxRead.setChecked(true); // viewBinding.checkboxRead.setChecked(true);
// } // }
// break; // break;
// case R.id.tv_login_confirm: case R.id.tv_login:
// if (TextUtils.isEmpty(viewBinding.edPhoneInput.getText().toString())) { if (TextUtils.isEmpty(viewBinding.etAccount.getText().toString())) {
// ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty)); ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty));
// return; return;
// } }
// if (!PhoneNumberUtils.checkPhoneNum(viewBinding.edPhoneInput.getText().toString().trim())) { if (!PhoneNumberUtils.checkPhoneNum(viewBinding.etAccount.getText().toString().trim()) &&
// ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid)); !PhoneNumberUtils.checkEmail(viewBinding.etAccount.getText().toString().trim())) {
// return; ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid));
// } return;
// if (TextUtils.isEmpty(viewBinding.edCodeInput.getText().toString())) { }
// ToastUtil.showShort(mContext, getString(R.string.login_error_code_empty)); if (TextUtils.isEmpty(viewBinding.edCodeInput.getText().toString())) {
// return; ToastUtil.showShort(mContext, getString(R.string.login_error_code_empty));
// } return;
// if (viewBinding.edCodeInput.getText().toString().trim().length() < 6) { }
// ToastUtil.showShort(mContext, getString(R.string.login_error_code_invalid)); if (viewBinding.edCodeInput.getText().toString().trim().length() < 6) {
// return; ToastUtil.showShort(mContext, getString(R.string.login_error_code_invalid));
// } return;
// if (!mYinsiConfirm) { }
// ToastUtil.showShort(mContext, getString(R.string.login_error_agreement)); if (!mYinsiConfirm) {
// return; ToastUtil.showShort(mContext, getString(R.string.login_error_agreement));
// } return;
// showLoadingDialog(); }
// mPresenter.loginBySmsCode( String loginType = "sms";
// viewBinding.edPhoneInput.getText().toString().trim(), if(LOGIN_TYPE_STATUS_CODE == 100){
// viewBinding.edCodeInput.getText().toString().trim()); loginType = "sms";
}else{
loginType = "password";
}
showLoadingDialog();
mPresenter.loginBySmsCode(loginType,
viewBinding.etAccount.getText().toString().trim(),
viewBinding.edCodeInput.getText().toString().trim());
// new Handler().postDelayed(() -> hideDialogLoading(), 1000); // new Handler().postDelayed(() -> hideDialogLoading(), 1000);
// break; break;
} }
@@ -267,6 +290,11 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
} }
}; };
@Override
public void registerSuccess(BaseBean bean) {
}
@Override @Override
public void getPhoneCodeSuccess(BaseBean bean) { public void getPhoneCodeSuccess(BaseBean bean) {
hideDialogLoading(); hideDialogLoading();
@@ -278,18 +306,18 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
public void loginBySmsCodeSuccess(LoginEntity entity) { public void loginBySmsCodeSuccess(LoginEntity entity) {
hideDialogLoading(); hideDialogLoading();
ToastUtil.showShort(mContext, getString(R.string.login_success)); ToastUtil.showShort(mContext, getString(R.string.login_success));
SharePreUtil.putBoolean(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_LOGIN, true); // SharePreUtil.putBoolean(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_LOGIN, true);
SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_TOKEN, entity.getAccess_token()); // SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_TOKEN, entity.getAccess_token());
SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_NICKNAME, entity.getUser_info().getNickname()); // SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_NICKNAME, entity.getUser_info().getNickname());
SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_ID, String.valueOf(entity.getUser_info().getUserId())); // SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_ID, String.valueOf(entity.getUser_info().getUserId()));
MingDengUserInfoManager.getInstance().setEntity(entity); // MingDengUserInfoManager.getInstance().setEntity(entity);
MingDengUserInfoManager.getInstance().setUserInfo(entity.getUser_info()); // MingDengUserInfoManager.getInstance().setUserInfo(entity.getUser_info());
Gson gson = new Gson(); // Gson gson = new Gson();
String userInfoJson = gson.toJson(entity); // String userInfoJson = gson.toJson(entity);
SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_INFO_JSON_CONTENT, userInfoJson); // SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_INFO_JSON_CONTENT, userInfoJson);
AppConfig.USER_LOGIN = true; // AppConfig.USER_LOGIN = true;
AppConfig.USER_TOKEN = entity.getAccess_token(); // AppConfig.USER_TOKEN = entity.getAccess_token();
AppConfig.USER_ID = String.valueOf(entity.getUser_info().getUserId()); // AppConfig.USER_ID = String.valueOf(entity.getUser_info().getUserId());
new Handler().postDelayed(() -> { new Handler().postDelayed(() -> {
goTo(mContext, MainActivity.class, null); goTo(mContext, MainActivity.class, null);
finish(); finish();

View File

@@ -69,11 +69,49 @@ public class RegisterActivity extends BaseActivity<RegisterLayoutBinding, LoginP
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid)); ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid));
return; return;
} }
cdTimer.start(); //发送短信
mPresenter.getPhoneCode(viewBinding.etAccount.getText().toString(),"");
// cdTimer.start();
break; break;
case R.id.tv_commit: case R.id.tv_commit:
goTo(mContext, RegisterSuccessActivity.class,null); if (TextUtils.isEmpty(viewBinding.etAccount.getText().toString())) {
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty));
return;
}
if (!PhoneNumberUtils.checkPhoneNum(viewBinding.etAccount.getText().toString().trim()) &&
!PhoneNumberUtils.checkEmail(viewBinding.etAccount.getText().toString().trim())) {
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid));
return;
}
if (TextUtils.isEmpty(viewBinding.etVerfiCode.getText().toString())) {
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty));
return;
}
if (TextUtils.isEmpty(viewBinding.etVerfiCode.getText().toString())) {
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty));
return;
}
if (TextUtils.isEmpty(viewBinding.etInputPsd.getText().toString())) {
ToastUtil.showShort(mContext, getString(R.string.login_error_psd_empty));
return;
}
if (TextUtils.isEmpty(viewBinding.etInputPsdAgin.getText().toString())) {
ToastUtil.showShort(mContext, getString(R.string.login_error_psd_agin_empty));
return;
}
if(!(viewBinding.etInputPsd.getText().toString()).equals(
viewBinding.etInputPsdAgin.getText().toString())){
ToastUtil.showShort(mContext, getString(R.string.hint_input_psd_not_match));
return;
}
showLoadingDialog();
mPresenter.registerAccount(viewBinding.etAccount.getText().toString(),
viewBinding.etVerfiCode.getText().toString(),
viewBinding.etInputPsd.getText().toString());
break; break;
} }
} }
@@ -100,6 +138,13 @@ public class RegisterActivity extends BaseActivity<RegisterLayoutBinding, LoginP
}; };
@Override
public void registerSuccess(BaseBean bean) {
hideDialogLoading();
ToastUtil.showShort(mContext,"注册成功");
finish();
}
@Override @Override
public void getPhoneCodeSuccess(BaseBean bean) { public void getPhoneCodeSuccess(BaseBean bean) {
@@ -112,6 +157,7 @@ public class RegisterActivity extends BaseActivity<RegisterLayoutBinding, LoginP
@Override @Override
public void showError(String message) { public void showError(String message) {
hideDialogLoading();
ToastUtil.showShort(mContext,message); ToastUtil.showShort(mContext,message);
} }

View File

@@ -79,6 +79,11 @@ public class RegisterSuccessActivity extends BaseActivity<RegisterSuccessLayoutB
return 0; return 0;
} }
@Override
public void registerSuccess(BaseBean bean) {
}
@Override @Override
public void getPhoneCodeSuccess(BaseBean bean) { public void getPhoneCodeSuccess(BaseBean bean) {

View File

@@ -6,6 +6,8 @@ import com.ckkj.water.network.BaseBean;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.Map;
/** /**
* @author fengxiaoyang * @author fengxiaoyang
* @date 2025/7/26 * @date 2025/7/26
@@ -18,13 +20,17 @@ public class LoginContract {
void fail(String msg); void fail(String msg);
} }
public interface DataModel{ public interface DataModel{
//手机验证码登录
void register(JSONObject json, CallBack callBack);
//获取手机验证码 //获取手机验证码
void getPhoneCode(JSONObject json, CallBack callBack); void getPhoneCode(Map<String,Object> map, CallBack callBack);
//手机验证码登录 //手机验证码登录
void loginBySmsCode(JSONObject json, CallBack callBack); void loginBySmsCode(JSONObject json, CallBack callBack);
} }
public interface LoginView extends IView{ public interface LoginView extends IView{
void registerSuccess(BaseBean bean);
//获取验证码 //获取验证码
void getPhoneCodeSuccess(BaseBean bean); void getPhoneCodeSuccess(BaseBean bean);
//验证码登录成功 //验证码登录成功

View File

@@ -7,6 +7,8 @@ import com.ckkj.water.network.NetWorkManager;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.Map;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull; import io.reactivex.annotations.NonNull;
@@ -21,15 +23,57 @@ import io.reactivex.schedulers.Schedulers;
public class LoginImpl implements LoginContract.DataModel { public class LoginImpl implements LoginContract.DataModel {
/** /**
* 获取验证码 * 注册
*
* @param json * @param json
* @param callBack * @param callBack
*/ */
@Override @Override
public void getPhoneCode(JSONObject json, LoginContract.CallBack callBack) { public void register(JSONObject json, LoginContract.CallBack callBack) {
try { try {
NetWorkManager.getRequest().sendPhoneCode(NetWorkManager.getToken(), NetWorkManager.toRequestBody(json)) NetWorkManager.getRequest().register(NetWorkManager.toRequestBody(json))
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull BaseBean bean) {
if (bean.getCode() == 200) {
callBack.success(bean.getData());
// 登录成功时调用
LoginStateManager.reset();
} else {
callBack.fail(bean.getMessage());
}
}
@Override
public void onError(@NonNull Throwable e) {
callBack.fail(e.getMessage());
}
@Override
public void onComplete() {
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取验证码
*
* @param map
* @param callBack
*/
@Override
public void getPhoneCode(Map<String,Object> map, LoginContract.CallBack callBack) {
try {
NetWorkManager.getRequest().sendPhoneCode(NetWorkManager.getToken(), map)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())

View File

@@ -33,12 +33,47 @@ public class LoginPresenter extends BasePresenter<LoginContract.LoginView> {
this.mImpl = mImpl; this.mImpl = mImpl;
} }
public void getPhoneCode(String phone, String codeType) { /**
* 注册
* @param account
* @param code
* @param psd
*/
public void registerAccount(String account, String code, String psd) {
try { try {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("mobile",phone); json.put("clientId",AppConfig.APP_CLIENT_ID);
json.put("type",codeType); json.put("username",account);
mImpl.getPhoneCode(json, new LoginContract.CallBack<BaseBean>() { json.put("code",code);
json.put("password",psd);
json.put("grantType",psd);
json.put("userType",AppConfig.APP_USER_TYPE);
mImpl.register(json, new LoginContract.CallBack<BaseBean>() {
@Override
public void success(BaseBean bean) {
if(LoginPresenter.this.getView() != null){
LoginPresenter.this.getView().registerSuccess(bean);
}
}
@Override
public void fail(String msg) {
if(LoginPresenter.this.getView() != null){
LoginPresenter.this.getView().showError(msg);
}
}
});
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
public void getPhoneCode(String phone, String codeType) {
Map<String,Object> map = new HashMap<>();
map.put("username",phone);
mImpl.getPhoneCode(map, new LoginContract.CallBack<BaseBean>() {
@Override @Override
public void success(BaseBean bean) { public void success(BaseBean bean) {
if(LoginPresenter.this.getView() != null){ if(LoginPresenter.this.getView() != null){
@@ -53,27 +88,33 @@ public class LoginPresenter extends BasePresenter<LoginContract.LoginView> {
} }
} }
}); });
} catch (JSONException e) {
throw new RuntimeException(e);
}
} }
/** /**
* 通过手机验证码登录 * 通过手机验证码登录
* @param phone * @param account
* @param code * @param code
*/ */
public void loginBySmsCode(String phone, String code) { public void loginBySmsCode(String loginType,String account, String code) {
try { try {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("mobile",phone); json.put("grantType",loginType);
json.put("code",code); if(loginType.equals("sms")){
json.put("phonenumber",account);
json.put("sms",code);
}else{
json.put("username",account);
json.put("password",code);
}
json.put("clientId",AppConfig.APP_CLIENT_ID);
json.put("userType",AppConfig.APP_USER_TYPE);
mImpl.loginBySmsCode(json, new LoginContract.CallBack<LoginEntity>() { mImpl.loginBySmsCode(json, new LoginContract.CallBack<LoginEntity>() {
@Override @Override
public void success(LoginEntity bean) { public void success(LoginEntity bean) {
if(LoginPresenter.this.getView() != null){ if(LoginPresenter.this.getView() != null){
LoginPresenter.this.getView().loginBySmsCodeSuccess(bean); LoginPresenter.this.getView().loginBySmsCodeSuccess(bean);
EventBus.getDefault().post(new EventMessage(EventMessage.USER_LOGIN_SUCCESS)); // EventBus.getDefault().post(new EventMessage(EventMessage.USER_LOGIN_SUCCESS));
//获取个人信息 //获取个人信息
// getUserInfo(); // getUserInfo();
} }
@@ -113,4 +154,6 @@ public class LoginPresenter extends BasePresenter<LoginContract.LoginView> {
// } // }
// }); // });
} }
} }

View File

@@ -37,8 +37,8 @@ import retrofit2.http.QueryMap;
public interface Request { public interface Request {
//注册 //注册
@POST("user/api/adduser") @POST("auth/register")
Observable<BaseBean> register(@QueryMap Map<String, Object> map); Observable<BaseBean> register(@Body RequestBody requestBody);
//获取验证码 //获取验证码
@POST("user/api/phone") @POST("user/api/phone")
Observable<BaseBean> getSmsCode(@QueryMap Map<String, Object> map); Observable<BaseBean> getSmsCode(@QueryMap Map<String, Object> map);
@@ -79,17 +79,15 @@ public interface Request {
@POST("mobile/yourhoroscope/modify") @POST("mobile/yourhoroscope/modify")
Observable<BaseBean<TodayFateEntity>> saveUserEditBirthInfo(@HeaderMap Map<String, String> headMap,@Body RequestBody requestBody); Observable<BaseBean<TodayFateEntity>> saveUserEditBirthInfo(@HeaderMap Map<String, String> headMap,@Body RequestBody requestBody);
//发送验证码 //发送验证码
@POST("mobile/sendCode") @GET("resource/code")
Observable<BaseBean> sendPhoneCode(@HeaderMap Map<String, String> headMap,@Body RequestBody requestBody); Observable<BaseBean> sendPhoneCode(@HeaderMap Map<String, String> headMap,@QueryMap Map<String, Object> map);
//登录 //登录
@POST("mobile/login") @POST("auth/login")
Observable<BaseBean<LoginEntity>> loginBySmsCode(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody); Observable<BaseBean<LoginEntity>> loginBySmsCode(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
//获取个人信息 //获取个人信息
@GET("mobile/userInfo")
Observable<BaseBean<MineUserInfoBean>> getMineUserInfo(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
//更新用户头像 //更新用户头像
@POST("mobile/modifyAvatar")
Observable<BaseBean> updateUseravatar(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
//获取今日运势 //获取今日运势
@POST("mobile/yourhoroscope/today") @POST("mobile/yourhoroscope/today")
Observable<BaseBean<TodayFateEntity>> getUserTodayFateDatas(@HeaderMap Map<String, String> headMap); Observable<BaseBean<TodayFateEntity>> getUserTodayFateDatas(@HeaderMap Map<String, String> headMap);
@@ -112,34 +110,9 @@ public interface Request {
@POST("mobile/paiPan/record") @POST("mobile/paiPan/record")
Observable<BaseBean> deletePaipanRecordById(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map); Observable<BaseBean> deletePaipanRecordById(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
//修改手机号 //修改手机号
@POST("mobile/modifyPhone")
Observable<BaseBean> modifyPhone(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
//注销账号
@POST("mobile/DeactivateAccount")
Observable<BaseBean> logoffAccount(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
//查询会员套餐
@GET("mobile/memberInFo")
Observable<BaseBean<List<MemberComboEntity>>> getMemberComboList(@HeaderMap Map<String, String> headMap);
//获取支付信息
@POST("mobile/alipay")
Observable<BaseBean> getPayOrderInfo(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
//问题反馈
@POST("mobile/appfeedback")
Observable<BaseBean> commitFeedback(@HeaderMap Map<String, String> headMap,@QueryMap Map<String, Object> map);
//问题反馈
@POST("mobile/reporting") @POST("mobile/reporting")
Observable<BaseBean> commitReporting(@HeaderMap Map<String, String> headMap,@QueryMap Map<String, Object> map); Observable<BaseBean> commitReporting(@HeaderMap Map<String, String> headMap,@QueryMap Map<String, Object> map);
//邀请数据 //邀请数据
@GET("mobile/invitationStatistics")
Observable<BaseBean<RecommendDataEntity>> getRecommendDatas(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
//邀请记录
@GET("mobile/myInvitees")
Observable<BaseBean<InviteeRecordEntity>> myInvitees(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
//注销账号
@POST("mobile/bind")
Observable<BaseBean> bindInvterCode(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
//奖励记录 //奖励记录
@GET("mobile/rewardHistoryDetail")
Observable<BaseBean<RewardRecordEntity>> getRewardRecords(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
/***************************钱包********************************/ /***************************钱包********************************/
} }

View File

@@ -90,7 +90,7 @@
<EditText <EditText
android:id="@+id/et_account" android:id="@+id/et_account"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:background="@null" android:background="@null"
android:textSize="14sp" android:textSize="14sp"
@@ -113,8 +113,9 @@
android:layout_height="24dp" android:layout_height="24dp"
android:src="@mipmap/icon_phone_code"/> android:src="@mipmap/icon_phone_code"/>
<EditText <EditText
android:id="@+id/ed_code_input"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="2" android:layout_weight="2"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:background="@null" android:background="@null"
@@ -203,5 +204,40 @@
android:text="@string/reset_psd" android:text="@string/reset_psd"
android:visibility="invisible"/> android:visibility="invisible"/>
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_100">
<RelativeLayout
android:id="@+id/realtive_read_finish"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginHorizontal="@dimen/dp_15"
android:layout_marginBottom="@dimen/dp_30">
<RadioButton
android:id="@+id/checkbox_read"
android:layout_width="@dimen/dp_14"
android:layout_height="@dimen/dp_14"
android:background="@drawable/select_radio"
android:layout_centerVertical="true"
android:button="@null"
android:clickable="false"
android:visibility="visible" />
<TextView
android:id="@+id/tv_agreement_full"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_12"
android:layout_marginRight="@dimen/dp_12"
android:layout_toRightOf="@+id/checkbox_read"
android:autoLink="none"
android:lineSpacingExtra="4dp"
android:textColor="@color/color_gray_tab"
android:textSize="11sp" />
</RelativeLayout>
</RelativeLayout>
</LinearLayout> </LinearLayout>

View File

@@ -40,7 +40,7 @@
<EditText <EditText
android:id="@+id/et_account" android:id="@+id/et_account"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:background="@null" android:background="@null"
android:textSize="14sp" android:textSize="14sp"
@@ -65,7 +65,7 @@
<EditText <EditText
android:id="@+id/et_verfi_code" android:id="@+id/et_verfi_code"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="2" android:layout_weight="2"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:background="@null" android:background="@null"
@@ -102,7 +102,7 @@
<EditText <EditText
android:id="@+id/et_input_psd" android:id="@+id/et_input_psd"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:background="@null" android:background="@null"
android:textSize="14sp" android:textSize="14sp"
@@ -127,7 +127,7 @@
<EditText <EditText
android:id="@+id/et_input_psd_agin" android:id="@+id/et_input_psd_agin"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:background="@null" android:background="@null"
android:textSize="14sp" android:textSize="14sp"

View File

@@ -18,6 +18,8 @@
<string name="login_error_phone_empty">手机号不能为空</string> <string name="login_error_phone_empty">手机号不能为空</string>
<string name="hint_input_psd_not_match">两次输入的密码不一致</string> <string name="hint_input_psd_not_match">两次输入的密码不一致</string>
<string name="login_error_phone_invalid">请输入正确的手机号或邮箱</string> <string name="login_error_phone_invalid">请输入正确的手机号或邮箱</string>
<string name="login_error_psd_empty">手机号或邮箱不能为空</string>
<string name="login_error_psd_agin_empty">请再次输入密码</string>
<string name="register_title">注册用户</string> <string name="register_title">注册用户</string>
<string name="register_title_bar">注册</string> <string name="register_title_bar">注册</string>
<string name="register_success_title">注册成功</string> <string name="register_success_title">注册成功</string>

View File

@@ -16,7 +16,9 @@
<string name="hint_input_new_psd">请输入新密码</string> <string name="hint_input_new_psd">请输入新密码</string>
<string name="hint_input_new_psd_agin">请再次输入新密码</string> <string name="hint_input_new_psd_agin">请再次输入新密码</string>
<string name="hint_input_psd_not_match">两次输入的密码不一致</string> <string name="hint_input_psd_not_match">两次输入的密码不一致</string>
<string name="login_error_phone_empty">手机号不能为空</string> <string name="login_error_phone_empty">手机号或邮箱不能为空</string>
<string name="login_error_psd_empty">密码不能为空</string>
<string name="login_error_psd_agin_empty">请再次输入密码</string>
<string name="login_error_phone_invalid">请输入正确的手机号或邮箱</string> <string name="login_error_phone_invalid">请输入正确的手机号或邮箱</string>
<string name="register_title">注册用户</string> <string name="register_title">注册用户</string>
<string name="register_title_bar">注册</string> <string name="register_title_bar">注册</string>
@@ -177,7 +179,7 @@
</string> </string>
<string name="app_name">星语明灯</string> <string name="app_name">智能浇水</string>
<!-- ==================== 登录页 ==================== --> <!-- ==================== 登录页 ==================== -->
<string name="login_app_name">星语明灯</string> <string name="login_app_name">星语明灯</string>