提交 6ae89711 authored 作者: lgd's avatar lgd

1.激活

2.//TODO erp用户激活,忘记密码测试,产品下单还差附件,bat,mes,消息,我的,刷新token
上级 197c15ed
package com.wd.workoffice.bean;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class ActivationUserBean {
/**
* createdBy : null
* createdByName : null
* createdTime : 2020-03-23 10:46:00
* updatedBy : 143
* updatedByName : null
* updatedTime : 2020-03-23 10:46:17
* id : 683
* userName : lengyf
* nickName : 冷益飞
* email : qq@qq.com
* phone : 17853721573
* type : 1
* status : 0
* erpId : 1111
* deptId : 118
* deptName : null
* verifyCode : null
*/
private Object createdBy;
private Object createdByName;
private String createdTime;
private int updatedBy;
private Object updatedByName;
private String updatedTime;
private int id;
private String userName;
private String nickName;
private String email;
private String phone;
private String type;
private String status;
private String erpId;
private int deptId;
private Object deptName;
private Object verifyCode;
public Object getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Object createdBy) {
this.createdBy = createdBy;
}
public Object getCreatedByName() {
return createdByName;
}
public void setCreatedByName(Object createdByName) {
this.createdByName = createdByName;
}
public String getCreatedTime() {
return createdTime;
}
public void setCreatedTime(String createdTime) {
this.createdTime = createdTime;
}
public int getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(int updatedBy) {
this.updatedBy = updatedBy;
}
public Object getUpdatedByName() {
return updatedByName;
}
public void setUpdatedByName(Object updatedByName) {
this.updatedByName = updatedByName;
}
public String getUpdatedTime() {
return updatedTime;
}
public void setUpdatedTime(String updatedTime) {
this.updatedTime = updatedTime;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getErpId() {
return erpId;
}
public void setErpId(String erpId) {
this.erpId = erpId;
}
public int getDeptId() {
return deptId;
}
public void setDeptId(int deptId) {
this.deptId = deptId;
}
public Object getDeptName() {
return deptName;
}
public void setDeptName(Object deptName) {
this.deptName = deptName;
}
public Object getVerifyCode() {
return verifyCode;
}
public void setVerifyCode(Object verifyCode) {
this.verifyCode = verifyCode;
}
}
package com.wd.workoffice.contract;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.ActivationUserBean;
import com.wd.workoffice.bean.DepBean;
import com.wd.workoffice.bean.ProcessBean;
import com.wd.workoffice.bean.StockBean;
import java.util.List;
import java.util.Map;
import flexible.xd.android_base.mvpBase.IBaseModel;
import flexible.xd.android_base.mvpBase.IBasePresenter;
import flexible.xd.android_base.mvpBase.IBaseView;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public interface ErpActivationContract {
interface Model extends IBaseModel {
Observable<BaseBean> getInfo(String phone);
Observable<BaseBean> getCode(String phone, String type);
Observable<BaseBean> verifyCode(String phone,String verifyCode,String type);
}
interface View extends IBaseView {
void getInfo(ActivationUserBean data);
void getCode();
void verifySuccess();
}
interface Presenter extends IBasePresenter<View> {
void getInfo(String phone);
void getCode(String phone, String type);
void verifyCode(String phone,String verifyCode,String type);
}
}
package com.wd.workoffice.model;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.ErpActivationContract;
import com.wd.workoffice.retrofit.RtfUtils;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class ErpActivationModel implements ErpActivationContract.Model {
@Override
public Observable<BaseBean> getInfo(String phone) {
return RtfUtils.getRtf().getInfo(phone);
}
@Override
public Observable<BaseBean> getCode(String phone, String type) {
return RtfUtils.getRtf().code(phone, type);
}
@Override
public Observable<BaseBean> verifyCode(String phone, String verifyCode, String type) {
return RtfUtils.getRtf().verifyCode(phone, verifyCode, type);
}
public static ErpActivationModel newInstance() {
return new ErpActivationModel();
}
}
package com.wd.workoffice.presenter;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.BatSaleContract;
import com.wd.workoffice.contract.ErpActivationContract;
import com.wd.workoffice.model.ErpActivationModel;
import com.wd.workoffice.retrofit.WorkObserver;
import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import io.reactivex.disposables.Disposable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class ErpActivationPresenter extends BasePresenter<ErpActivationContract.View, ErpActivationContract.Model> implements ErpActivationContract.Presenter {
@Override
public void getInfo(String phone) {
mView.showLoading();
mModel.getInfo(phone).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
mDisposable.add(d);
}
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading();
if (data.getCode() != 0) {
mView.onError(data.getMessage());
return;
}
mView.getInfo(data);
}
});
}
@Override
public void getCode(String phone, String type) {
mView.showLoading();
mModel.getCode(phone, type).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
mDisposable.add(d);
}
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading();
if (data.getCode() != 0) {
mView.onError(data.getMessage());
return;
}
mView.getCode();
}
});
}
@Override
public void verifyCode(String phone, String verifyCode, String type) {
mView.showLoading();
mModel.verifyCode(phone, verifyCode,type).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
mDisposable.add(d);
}
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading();
if (data.getCode() != 0) {
mView.onError(data.getMessage());
return;
}
mView.verifySuccess();
}
});
}
@Override
public ErpActivationContract.Model bindModel() {
return ErpActivationModel.newInstance();
}
}
...@@ -57,6 +57,16 @@ public interface ApiService { ...@@ -57,6 +57,16 @@ public interface ApiService {
@POST("/authorities/logout") @POST("/authorities/logout")
Observable<BaseBean> logout(); Observable<BaseBean> logout();
/**
* 激活员工前获取该员工信息
*
* @return
*/
@GET("/open/pre-activation/{phone}")
Observable<BaseBean> preActivationUser(@Path("phone") String phone);
/** /**
* 忘记密码(短信验证码的方式,重置密码) * 忘记密码(短信验证码的方式,重置密码)
* *
...@@ -75,15 +85,6 @@ public interface ApiService { ...@@ -75,15 +85,6 @@ public interface ApiService {
Observable<BaseBean> modifyPwd(@Query("oldPassword") String oldPassword, Observable<BaseBean> modifyPwd(@Query("oldPassword") String oldPassword,
@Query("newPassword") String newPassword); @Query("newPassword") String newPassword);
/**
* 激活员工前获取该员工信息
*
* @return
*/
@GET("/open/pre-activation/{phone}")
Observable<JSONObject> getInfo(@Path("phone") String phone);
/** /**
* 发送短信验证码 * 发送短信验证码
* *
...@@ -104,14 +105,20 @@ public interface ApiService { ...@@ -104,14 +105,20 @@ public interface ApiService {
Observable<BaseBean> verifyCode(@Query("phone") String phone, Observable<BaseBean> verifyCode(@Query("phone") String phone,
@Query("verifyCode") String verifyCode, @Query("type") String type); @Query("verifyCode") String verifyCode, @Query("type") String type);
/**
* 激活员工前获取该员工信息
*
* @return
*/
@GET("/open/pre-activation/{phone}")
Observable<BaseBean> getInfo(@Path("phone") String phone);
/** /**
* 激活用户 * 激活用户
* *
* @return * @return
*/ */
@POST("/open/activation-user") @POST("/open/activation-user")
Observable<JSONObject> activation(@QueryMap Map<String, Object> param); Observable<BaseBean> activation(@QueryMap Map<String, Object> param);
/** /**
* 部门列表 * 部门列表
......
package com.wd.workoffice.ui.activity.login; package com.wd.workoffice.ui.activity.login;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkToolBarActivity; import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.ActivationUserBean;
import com.wd.workoffice.bean.workEnum.CodeType;
import com.wd.workoffice.contract.ErpActivationContract;
import com.wd.workoffice.presenter.ErpActivationPresenter;
import com.wd.workoffice.util.WorkUtils; import com.wd.workoffice.util.WorkUtils;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
import flexible.xd.android_base.utils.RegexUtils;
import flexible.xd.android_base.utils.ToastUtil; import flexible.xd.android_base.utils.ToastUtil;
/* /*
* ERP员工激活 * ERP员工激活
* */ * */
public class ErpActivationOneActivity extends WorkToolBarActivity { public class ErpActivationOneActivity extends WorkToolBarActivity implements ErpActivationContract.View {
@BindView(R.id.et_phone) @BindView(R.id.et_phone)
...@@ -34,10 +41,15 @@ public class ErpActivationOneActivity extends WorkToolBarActivity { ...@@ -34,10 +41,15 @@ public class ErpActivationOneActivity extends WorkToolBarActivity {
TextView tvCode; TextView tvCode;
@BindView(R.id.btn_next) @BindView(R.id.btn_next)
Button btnNext; Button btnNext;
private ErpActivationPresenter erpActivationPresenter;
private ActivationUserBean infoData;
@Override @Override
protected void initView() { protected void initView() {
ButterKnife.bind(this); ButterKnife.bind(this);
erpActivationPresenter = new ErpActivationPresenter();
erpActivationPresenter.onAttach(this);
btnNext.setEnabled(false);
} }
@Override @Override
...@@ -47,9 +59,48 @@ public class ErpActivationOneActivity extends WorkToolBarActivity { ...@@ -47,9 +59,48 @@ public class ErpActivationOneActivity extends WorkToolBarActivity {
@Override @Override
protected void initEvent() { protected void initEvent() {
etPhone.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etCode.getText().toString())) {
btnNext.setEnabled(true);
} else {
btnNext.setEnabled(false);
}
}
});
etCode.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
} }
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etPhone.getText().toString())) {
btnNext.setEnabled(true);
} else {
btnNext.setEnabled(false);
}
}
});
}
@Override @Override
protected int layoutId() { protected int layoutId() {
return R.layout.activity_erp_activation_one; return R.layout.activity_erp_activation_one;
...@@ -59,14 +110,49 @@ public class ErpActivationOneActivity extends WorkToolBarActivity { ...@@ -59,14 +110,49 @@ public class ErpActivationOneActivity extends WorkToolBarActivity {
public void onViewClicked(View view) { public void onViewClicked(View view) {
switch (view.getId()) { switch (view.getId()) {
case R.id.tv_discover: case R.id.tv_discover:
String discover = etPhone.getText().toString();
if (!RegexUtils.isMobileSimple(discover)){
toast("请输入正确的手机号");
return;
}
erpActivationPresenter.getInfo(discover);
break; break;
case R.id.tv_code: case R.id.tv_code:
WorkUtils.timerSeckill(tvCode, 60 * 1000, 1000, 0); String phone = etPhone.getText().toString();
ToastUtil.showLong("验证码发送成功,请注意查收!"); erpActivationPresenter.getCode(phone,CodeType.REGISTER.getName());
break; break;
case R.id.btn_next: case R.id.btn_next:
startActivity(ErpActivationTwoActivity.class); if (infoData==null){
toast("请检测用户信息");
return;
}
String code = etCode.getText().toString();
if (TextUtils.isEmpty(code)) {
toast("请输入验证码");
return;
}
erpActivationPresenter.verifyCode(etPhone.getText().toString(), code, CodeType.REGISTER.getName());
break; break;
} }
} }
@Override
public void getInfo(ActivationUserBean data) {
infoData = data;
etName.setText(data.getUserName());
etStaffCode.setText(data.getErpId());
}
@Override
public void getCode() {
WorkUtils.timerSeckill(tvCode, 60 * 1000, 1000, 0);
ToastUtil.showLong("验证码发送成功,请注意查收!");
}
@Override
public void verifySuccess() {
startActivity(ErpActivationTwoActivity.class,
"phone",etPhone.getText().toString(),"code",etCode.getText().toString(),
"info",JSON.toJSONString(infoData));
}
} }
package com.wd.workoffice.ui.activity.login; package com.wd.workoffice.ui.activity.login;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import com.alibaba.fastjson.JSON;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.Config;
import com.wd.workoffice.app.WorkToolBarActivity; import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.ActivationUserBean;
import com.wd.workoffice.bean.FlowBean;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.utils.RegexUtils;
import io.reactivex.disposables.Disposable;
/* /*
*设置账号密码激活 *设置账号密码激活
...@@ -23,22 +40,90 @@ public class ErpActivationTwoActivity extends WorkToolBarActivity { ...@@ -23,22 +40,90 @@ public class ErpActivationTwoActivity extends WorkToolBarActivity {
EditText etConfirmPwd; EditText etConfirmPwd;
@BindView(R.id.btn_next) @BindView(R.id.btn_next)
Button btnNext; Button btnNext;
private Map<String, Object> param;
@Override @Override
protected void initView() { protected void initView() {
ButterKnife.bind(this); ButterKnife.bind(this);
param = new HashMap<>();
} }
@Override @Override
protected void initData() { protected void initData() {
param.put("verifyCode", getIntent().getStringExtra("code"));
param.put("phone", getIntent().getStringExtra("phone"));
ActivationUserBean info = JSON.parseObject(getIntent().getStringExtra("info"), ActivationUserBean.class);
param.put("email", info.getEmail());
param.put("nickName", info.getNickName());
} }
@Override @Override
protected void initEvent() { protected void initEvent() {
etConfirmPwd.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etName.getText().toString()) &&
!TextUtils.isEmpty(etPwd.getText().toString())) {
btnNext.setEnabled(true);
} else {
btnNext.setEnabled(false);
}
}
});
etName.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etConfirmPwd.getText().toString()) &&
!TextUtils.isEmpty(etPwd.getText().toString())) {
btnNext.setEnabled(true);
} else {
btnNext.setEnabled(false);
}
}
});
etPwd.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
} }
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s) && !TextUtils.isEmpty(etName.getText().toString()) &&
!TextUtils.isEmpty(etConfirmPwd.getText().toString())) {
btnNext.setEnabled(true);
} else {
btnNext.setEnabled(false);
}
}
});
}
@Override @Override
protected int layoutId() { protected int layoutId() {
return R.layout.activity_erp_activation_two; return R.layout.activity_erp_activation_two;
...@@ -47,5 +132,53 @@ public class ErpActivationTwoActivity extends WorkToolBarActivity { ...@@ -47,5 +132,53 @@ public class ErpActivationTwoActivity extends WorkToolBarActivity {
@OnClick(R.id.btn_next) @OnClick(R.id.btn_next)
public void onViewClicked() { public void onViewClicked() {
String name = etName.getText().toString();
String pwd = etPwd.getText().toString();
String confirmPwd = etConfirmPwd.getText().toString();
if (!RegexUtils.isMatch(Config.REGEX_USERNAME, name)) {
toast("账号名称数字和字母4-16位");
return;
}
if (!RegexUtils.isMatch(Config.REGEX_PASSWORD, pwd)) {
toast("设置密码数字或字母6-16位");
return;
}
if (TextUtils.equals(pwd, "123456")) {
toast("密码不能为123456");
return;
}
if (!TextUtils.equals(pwd, confirmPwd)) {
toast("两次输入的密码不一致");
return;
}
param.put("userName", name);
param.put("password", pwd);
submit();
}
private void submit() {
RtfUtils.getRtf().activation(param).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
}
@Override
public void onFail(String errorMsg) {
hideLoading();
toast(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
hideLoading();
if (data.getCode() != 0) {
toast(data.getMessage());
return;
}
finish();
toast(data.getMessage());
startActivity(LoginActivity.class);
}
});
} }
} }
...@@ -160,9 +160,9 @@ ...@@ -160,9 +160,9 @@
android:id="@+id/btn_next" android:id="@+id/btn_next"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50mm" android:layout_height="50mm"
android:background="@drawable/selector_btn"
android:layout_marginHorizontal="58mm" android:layout_marginHorizontal="58mm"
android:layout_marginTop="40mm" android:layout_marginTop="40mm"
android:background="@mipmap/btn_main_bg"
android:text="下一步" android:text="下一步"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="20sp" /> android:textSize="20sp" />
......
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
android:layout_height="50mm" android:layout_height="50mm"
android:layout_marginHorizontal="58mm" android:layout_marginHorizontal="58mm"
android:layout_marginTop="40mm" android:layout_marginTop="40mm"
android:background="@mipmap/btn_main_bg" android:background="@drawable/selector_btn"
android:text="激活" android:text="激活"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="20sp" /> android:textSize="20sp" />
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论