提交 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 {
@POST("/authorities/logout")
Observable<BaseBean> logout();
/**
* 激活员工前获取该员工信息
*
* @return
*/
@GET("/open/pre-activation/{phone}")
Observable<BaseBean> preActivationUser(@Path("phone") String phone);
/**
* 忘记密码(短信验证码的方式,重置密码)
*
......@@ -75,15 +85,6 @@ public interface ApiService {
Observable<BaseBean> modifyPwd(@Query("oldPassword") String oldPassword,
@Query("newPassword") String newPassword);
/**
* 激活员工前获取该员工信息
*
* @return
*/
@GET("/open/pre-activation/{phone}")
Observable<JSONObject> getInfo(@Path("phone") String phone);
/**
* 发送短信验证码
*
......@@ -104,14 +105,20 @@ public interface ApiService {
Observable<BaseBean> verifyCode(@Query("phone") String phone,
@Query("verifyCode") String verifyCode, @Query("type") String type);
/**
* 激活员工前获取该员工信息
*
* @return
*/
@GET("/open/pre-activation/{phone}")
Observable<BaseBean> getInfo(@Path("phone") String phone);
/**
* 激活用户
*
* @return
*/
@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;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.wd.workoffice.R;
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 butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.utils.RegexUtils;
import flexible.xd.android_base.utils.ToastUtil;
/*
* ERP员工激活
* */
public class ErpActivationOneActivity extends WorkToolBarActivity {
public class ErpActivationOneActivity extends WorkToolBarActivity implements ErpActivationContract.View {
@BindView(R.id.et_phone)
......@@ -34,10 +41,15 @@ public class ErpActivationOneActivity extends WorkToolBarActivity {
TextView tvCode;
@BindView(R.id.btn_next)
Button btnNext;
private ErpActivationPresenter erpActivationPresenter;
private ActivationUserBean infoData;
@Override
protected void initView() {
ButterKnife.bind(this);
erpActivationPresenter = new ErpActivationPresenter();
erpActivationPresenter.onAttach(this);
btnNext.setEnabled(false);
}
@Override
......@@ -47,7 +59,46 @@ public class ErpActivationOneActivity extends WorkToolBarActivity {
@Override
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
......@@ -59,14 +110,49 @@ public class ErpActivationOneActivity extends WorkToolBarActivity {
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_discover:
String discover = etPhone.getText().toString();
if (!RegexUtils.isMobileSimple(discover)){
toast("请输入正确的手机号");
return;
}
erpActivationPresenter.getInfo(discover);
break;
case R.id.tv_code:
WorkUtils.timerSeckill(tvCode, 60 * 1000, 1000, 0);
ToastUtil.showLong("验证码发送成功,请注意查收!");
String phone = etPhone.getText().toString();
erpActivationPresenter.getCode(phone,CodeType.REGISTER.getName());
break;
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;
}
}
@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;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.widget.Button;
import android.widget.EditText;
import com.alibaba.fastjson.JSON;
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.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.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.utils.RegexUtils;
import io.reactivex.disposables.Disposable;
/*
*设置账号密码激活
......@@ -23,20 +40,88 @@ public class ErpActivationTwoActivity extends WorkToolBarActivity {
EditText etConfirmPwd;
@BindView(R.id.btn_next)
Button btnNext;
private Map<String, Object> param;
@Override
protected void initView() {
ButterKnife.bind(this);
param = new HashMap<>();
}
@Override
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
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
......@@ -47,5 +132,53 @@ public class ErpActivationTwoActivity extends WorkToolBarActivity {
@OnClick(R.id.btn_next)
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 @@
android:id="@+id/btn_next"
android:layout_width="match_parent"
android:layout_height="50mm"
android:background="@drawable/selector_btn"
android:layout_marginHorizontal="58mm"
android:layout_marginTop="40mm"
android:background="@mipmap/btn_main_bg"
android:text="下一步"
android:textColor="@color/white"
android:textSize="20sp" />
......
......@@ -119,7 +119,7 @@
android:layout_height="50mm"
android:layout_marginHorizontal="58mm"
android:layout_marginTop="40mm"
android:background="@mipmap/btn_main_bg"
android:background="@drawable/selector_btn"
android:text="激活"
android:textColor="@color/white"
android:textSize="20sp" />
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论