Commit d6f9d5dc by 罗翻

增加角色判断,修改登录逻辑

parent f0343d32
Showing with 359 additions and 120 deletions
...@@ -71,14 +71,16 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa ...@@ -71,14 +71,16 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
} }
private void doJump() { private void doJump() {
UserInfo info = UserManager.getInstance().getUser();
if (info != null) {
loginHx(info.getHxAccount(), info.getHxPwd());
}
if (UserManager.getInstance().hasUserInfo()) {
switch (UserManager.getInstance().getRole()) { switch (UserManager.getInstance().getRole()) {
case Constants.NOT_LOGIN:
Intent intent = new Intent(InitializeActivity.this, SmsLoginActivity.class);
startActivity(intent);
break;
case Constants.MANAGER: case Constants.MANAGER:
case Constants.MANAGER_NOSITE_ENGINEER:
if (StationManager.getInstance().haveData()) { if (StationManager.getInstance().haveData()) {
Intent intent1 = new Intent(InitializeActivity.this, MainActivity.class); Intent intent1 = new Intent(InitializeActivity.this, ManagerActivity.class);
startActivity(intent1); startActivity(intent1);
} else { } else {
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation(); ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
...@@ -91,7 +93,7 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa ...@@ -91,7 +93,7 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
case Constants.MANAGER_ENGINEER: case Constants.MANAGER_ENGINEER:
Intent intent2; Intent intent2;
if (StationManager.getInstance().haveData()) { if (StationManager.getInstance().haveData()) {
intent2 = new Intent(InitializeActivity.this, ManagerActivity.class); intent2 = new Intent(InitializeActivity.this, MainActivity.class);
startActivity(intent2); startActivity(intent2);
} else { } else {
intent2 = new Intent(InitializeActivity.this, ServiceStationActivity.class); intent2 = new Intent(InitializeActivity.this, ServiceStationActivity.class);
...@@ -102,8 +104,10 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa ...@@ -102,8 +104,10 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
default: default:
break; break;
} }
UserInfo info = UserManager.getInstance().getUser(); } else {
loginHx(info.getHxAccount(), info.getHxPwd()); Intent intent = new Intent(InitializeActivity.this, SmsLoginActivity.class);
startActivity(intent);
}
finish(); finish();
} }
......
...@@ -18,6 +18,7 @@ import com.dayu.utils.AppManager; ...@@ -18,6 +18,7 @@ import com.dayu.utils.AppManager;
import com.dayu.utils.AppUtils; import com.dayu.utils.AppUtils;
import com.dayu.utils.DataCleanManager; import com.dayu.utils.DataCleanManager;
import com.dayu.utils.SPUtils; import com.dayu.utils.SPUtils;
import com.dayu.utils.StationManager;
import com.dayu.utils.UIUtils; import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
import com.hyphenate.chat.EMClient; import com.hyphenate.chat.EMClient;
...@@ -92,6 +93,7 @@ public class SettingPresenter extends SettingContract.Presenter { ...@@ -92,6 +93,7 @@ public class SettingPresenter extends SettingContract.Presenter {
public void exite() { public void exite() {
EMClient.getInstance().logout(true); EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo(); UserManager.getInstance().clearUserInfo();
StationManager.getInstance().clear();
AppManager.getInstance().finishAllActivity(); AppManager.getInstance().finishAllActivity();
mView.startActivity(SmsLoginActivity.class); mView.startActivity(SmsLoginActivity.class);
MobclickAgent.onEvent(MyApplication.getContext(), "login_out"); MobclickAgent.onEvent(MyApplication.getContext(), "login_out");
......
...@@ -82,6 +82,9 @@ public class ServerException extends Exception { ...@@ -82,6 +82,9 @@ public class ServerException extends Exception {
case "USER0065": case "USER0065":
message = BaseApplication.getContext().getString(R.string.old_pwd_error); message = BaseApplication.getContext().getString(R.string.old_pwd_error);
break; break;
case "USER0084":
message = BaseApplication.getContext().getString(R.string.engineer_or_manager_not_exite);
break;
case "DETECT_ERROR00003": case "DETECT_ERROR00003":
message = BaseApplication.getContext().getString(R.string.error_detect_face); message = BaseApplication.getContext().getString(R.string.error_detect_face);
break; break;
......
...@@ -103,9 +103,22 @@ public class Constants { ...@@ -103,9 +103,22 @@ public class Constants {
/***********************其他配置**********************************/ /***********************其他配置**********************************/
public final static int PAGESIZE = 20; public final static int PAGESIZE = 20;
public final static int NOT_LOGIN = -1; public final static int NOT_LOGIN = -1;
/**
* 店长.
*/
public final static int MANAGER = 1; public final static int MANAGER = 1;
/**
* 工程师.
*/
public final static int ENGINEER = 2; public final static int ENGINEER = 2;
/**
* 店长和工程师.
*/
public final static int MANAGER_ENGINEER = 3; public final static int MANAGER_ENGINEER = 3;
/**
* 店长和没有加入站点的工程师.
*/
public final static int MANAGER_NOSITE_ENGINEER = 4;
public final static String BUNDLE = "bundle"; public final static String BUNDLE = "bundle";
public final static String ID = "id"; public final static String ID = "id";
//订单详情 //订单详情
......
...@@ -33,6 +33,10 @@ public class StationManager { ...@@ -33,6 +33,10 @@ public class StationManager {
public boolean haveData() { public boolean haveData() {
ServiceStation station = getStation(); ServiceStation station = getStation();
return station == null || station.getAccountId() != null; return !(station == null || station.getId() == 0);
}
public void clear(){
SPUtils.remove("SERVICE_STATION");
} }
} }
...@@ -9,12 +9,13 @@ import android.os.CountDownTimer; ...@@ -9,12 +9,13 @@ import android.os.CountDownTimer;
public class TimeUtils { public class TimeUtils {
private static CountDownTimer mTimer; private static CountDownTimer mTimer;
public static void startTimer(long millisInFuture, long countDownInterval, int tag, OnCountDownCallBack callBack) { public static CountDownTimer startTimer(long millisInFuture, long countDownInterval, OnCountDownCallBack callBack) {
mTimer = getTimer(millisInFuture, countDownInterval, tag, callBack); mTimer = getTimer(millisInFuture, countDownInterval, callBack);
mTimer.start(); mTimer.start();
return mTimer;
} }
private static CountDownTimer getTimer(long millisInFuture, long interval, int tag, OnCountDownCallBack callBack) { private static CountDownTimer getTimer(long millisInFuture, long interval, OnCountDownCallBack callBack) {
return new CountDownTimer(millisInFuture, interval) { return new CountDownTimer(millisInFuture, interval) {
@Override @Override
public void onTick(long millisUntilFinished) { public void onTick(long millisUntilFinished) {
...@@ -31,14 +32,14 @@ public class TimeUtils { ...@@ -31,14 +32,14 @@ public class TimeUtils {
hour = hour % 24; hour = hour % 24;
} }
if (callBack != null) { if (callBack != null) {
callBack.onProcess(day, hour, minute, second, tag); callBack.onProcess(day, hour, minute, second);
} }
} }
@Override @Override
public void onFinish() { public void onFinish() {
if (callBack != null) { if (callBack != null) {
callBack.onFinish(tag); callBack.onFinish();
} }
} }
}; };
...@@ -53,8 +54,8 @@ public class TimeUtils { ...@@ -53,8 +54,8 @@ public class TimeUtils {
public interface OnCountDownCallBack { public interface OnCountDownCallBack {
void onProcess(int day, int hour, int minute, int second, int tag); void onProcess(int day, int hour, int minute, int second);
void onFinish(int tag); void onFinish();
} }
} }
...@@ -79,13 +79,34 @@ public class UserManager { ...@@ -79,13 +79,34 @@ public class UserManager {
boolean isEngineer = false; boolean isEngineer = false;
boolean isManager = false; boolean isManager = false;
UserInfo userInfo = getUser(); UserInfo userInfo = getUser();
if (userInfo == null || userInfo.getRoles() == null || (TextUtils.isEmpty(userInfo.getAccountId()) && TextUtils.isEmpty(userInfo.getAccountName()))) { if (userInfo != null && userInfo.getRoles().contains(2)) {
isEngineer = true;
}
if (userInfo != null && userInfo.getRoles().contains(3)) {
isManager = true;
}
if (isEngineer && isManager) {
if (userInfo.getSiteId() == -1) {
return Constants.MANAGER_NOSITE_ENGINEER;
} else {
return Constants.MANAGER_ENGINEER;
}
} else if (isEngineer) {
return Constants.ENGINEER;
} else if (isManager) {
return Constants.MANAGER;
} else {
return Constants.NOT_LOGIN; return Constants.NOT_LOGIN;
} }
if (userInfo.getRoles().contains(2)) { }
public int getRole(UserInfo userInfo) {
boolean isEngineer = false;
boolean isManager = false;
if (userInfo != null && userInfo.getRoles().contains(2)) {
isEngineer = true; isEngineer = true;
} }
if (userInfo.getRoles().contains(3)) { if (userInfo != null && userInfo.getRoles().contains(3)) {
isManager = true; isManager = true;
} }
if (isEngineer && isManager) { if (isEngineer && isManager) {
...@@ -94,7 +115,8 @@ public class UserManager { ...@@ -94,7 +115,8 @@ public class UserManager {
return Constants.ENGINEER; return Constants.ENGINEER;
} else if (isManager) { } else if (isManager) {
return Constants.MANAGER; return Constants.MANAGER;
} } else {
return Constants.NOT_LOGIN; return Constants.NOT_LOGIN;
} }
}
} }
...@@ -186,7 +186,7 @@ ...@@ -186,7 +186,7 @@
<string name="out_of_date">已过期</string> <string name="out_of_date">已过期</string>
<string name="grab_time">还剩余%1$d天%2$d小时%3$d分%4$d秒"</string> <string name="grab_time">还剩余%1$d天%2$d小时%3$d分%4$d秒"</string>
<string name="designate_success">工程师指派成功</string> <string name="designate_success">工程师指派成功</string>
<string name="engineer"></string> <string name="engineer">&#160;&#160;&#160;&#160;</string>
<string name="change">改派</string> <string name="change">改派</string>
<string name="bargain_notice">如果您的报价得到“%1$s”同意,该任务将由您承接。点击“提交报价”等待处理吧。注:提交报价需要等待,可能会被其他人抢单哦</string> <string name="bargain_notice">如果您的报价得到“%1$s”同意,该任务将由您承接。点击“提交报价”等待处理吧。注:提交报价需要等待,可能会被其他人抢单哦</string>
<string name="receive_notice">如果您同意“%1$s”发布的任务和报价,点击“确定接单”按钮,您可以马上开始进行工作。</string> <string name="receive_notice">如果您同意“%1$s”发布的任务和报价,点击“确定接单”按钮,您可以马上开始进行工作。</string>
...@@ -403,6 +403,7 @@ ...@@ -403,6 +403,7 @@
<string name="my_price">您的报价</string> <string name="my_price">您的报价</string>
<string name="bao_price">报价</string> <string name="bao_price">报价</string>
<string name="bargain_dialog_error">您的报价不能低于发单方的价格</string> <string name="bargain_dialog_error">您的报价不能低于发单方的价格</string>
<string name="login_out">退出登录</string>
<!--消息--> <!--消息-->
<string name="message_system">系统通知</string> <string name="message_system">系统通知</string>
...@@ -536,6 +537,7 @@ ...@@ -536,6 +537,7 @@
<string name="engineer_identity_auditing">您的身份认证正在审核中,请耐心等待</string> <string name="engineer_identity_auditing">您的身份认证正在审核中,请耐心等待</string>
<string name="engineer_identity_not_audite">您还没有进行身份认证</string> <string name="engineer_identity_not_audite">您还没有进行身份认证</string>
<string name="engineer_not_have_site">您未加入服务站,请联系站点</string> <string name="engineer_not_have_site">您未加入服务站,请联系站点</string>
<string name="engineer_or_manager_not_exite">工程师账号或店长账号不存在</string>
<string name="audite_tip">资料已经提交审核\n审核结果会通过短信通知您</string> <string name="audite_tip">资料已经提交审核\n审核结果会通过短信通知您</string>
<string name="audite_tip_title">提交成功</string> <string name="audite_tip_title">提交成功</string>
<string name="audite_tip_submite_title">重新提交</string> <string name="audite_tip_submite_title">重新提交</string>
......
...@@ -9,7 +9,7 @@ buildscript { ...@@ -9,7 +9,7 @@ buildscript {
ext.verson_name = "1.9.2" ext.verson_name = "1.9.2"
ext.gradle_version = '3.1.4' ext.gradle_version = '3.1.4'
ext.isReleaseMinify = true ext.isReleaseMinify = true
ext.isDebugMinify = true ext.isDebugMinify = false
ext.arouter_api_version = '1.3.1' ext.arouter_api_version = '1.3.1'
ext.arouter_compiler_version = '1.1.4' ext.arouter_compiler_version = '1.1.4'
......
...@@ -34,6 +34,7 @@ public class ChangeOrderPresenter extends ChangeOrderContract.Presenter { ...@@ -34,6 +34,7 @@ public class ChangeOrderPresenter extends ChangeOrderContract.Presenter {
@Override @Override
public void getDesignateList() { public void getDesignateList() {
mView.showDialog();
ManagerApiFactory.getDesignateList(mStation.getId(), 1, mPage, Constants.PAGESIZE).subscribe(baseObserver( ManagerApiFactory.getDesignateList(mStation.getId(), 1, mPage, Constants.PAGESIZE).subscribe(baseObserver(
orderBasePageBean -> datas.set(orderBasePageBean), orderBasePageBean -> datas.set(orderBasePageBean),
error -> datas.set(Constants.FAILED))); error -> datas.set(Constants.FAILED)));
......
...@@ -12,6 +12,7 @@ import com.dayu.common.BaseView; ...@@ -12,6 +12,7 @@ import com.dayu.common.BaseView;
public interface ChangeReasonContract { public interface ChangeReasonContract {
interface View extends BaseView { interface View extends BaseView {
void dumpToDetail();
} }
abstract class Presenter extends BasePresenter<View> { abstract class Presenter extends BasePresenter<View> {
......
package com.dayu.managercenter.presenter.changereason; package com.dayu.managercenter.presenter.changereason;
import android.databinding.ObservableField; import android.databinding.ObservableField;
import android.text.TextUtils;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.managercenter.api.ManagerApiFactory; import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.provider.event.RefreshManagerEvent;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import org.greenrobot.eventbus.EventBus;
/** /**
* Created by luofan * Created by luofan
* on 2017/11/8. * on 2017/11/8.
...@@ -14,21 +19,32 @@ public class ChangeReasonPresenter extends ChangeReasonContract.Presenter { ...@@ -14,21 +19,32 @@ public class ChangeReasonPresenter extends ChangeReasonContract.Presenter {
public ObservableField<String> mReason = new ObservableField<>(); public ObservableField<String> mReason = new ObservableField<>();
private int mAccountId; private int mAccountId;
private int mId; private int mId;
private int mState;
@Override @Override
public void onAttached() { public void onAttached() {
mAccountId = mView.getBundle().getInt(Constants.ACCOUNT_ID); mAccountId = mView.getBundle().getInt(Constants.ACCOUNT_ID);
mId = mView.getBundle().getInt(Constants.ID); mId = mView.getBundle().getInt(Constants.ID);
mState = mView.getBundle().getInt(Constants.STATE);
} }
@Override @Override
public void changeEngineer() { public void changeEngineer() {
if (TextUtils.isEmpty(mReason.get())) {
ToastUtils.showShortToast("请输入改派原因");
return;
}
mView.showDialog(); mView.showDialog();
ManagerApiFactory.changeEngineer(mId, mReason.get(), mAccountId).subscribe( ManagerApiFactory.changeEngineer(mId, mReason.get(), mAccountId).subscribe(
baseObserver(aBoolean -> { baseObserver(aBoolean -> {
ToastUtils.showShortToast("改派成功"); ToastUtils.showShortToast("改派成功");
EventBus.getDefault().post(new RefreshManagerEvent(ManagerConstant.CHANGE_ORDER));
if (mState == 1) {
mView.dumpToDetail();
} else {
mView.dumpBack(); mView.dumpBack();
}
}) })
); );
} }
......
...@@ -57,5 +57,6 @@ public interface SendDetailContract { ...@@ -57,5 +57,6 @@ public interface SendDetailContract {
* @param kaOrderId id. * @param kaOrderId id.
*/ */
public abstract void getBargainPrice(int kaOrderId); public abstract void getBargainPrice(int kaOrderId);
} }
} }
...@@ -11,6 +11,7 @@ import com.dayu.managercenter.common.ManagerConstant; ...@@ -11,6 +11,7 @@ import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Engineer; import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.data.OrderDetail; import com.dayu.managercenter.data.OrderDetail;
import com.dayu.managercenter.data.Spu; import com.dayu.managercenter.data.Spu;
import com.dayu.managercenter.ui.activity.ChangeReasonActivity;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity; import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.DesignateEvent; import com.dayu.provider.event.DesignateEvent;
import com.dayu.provider.event.ManagerReceiveEvent; import com.dayu.provider.event.ManagerReceiveEvent;
...@@ -43,11 +44,13 @@ public class SendDetailPresenter extends SendDetailContract.Presenter { ...@@ -43,11 +44,13 @@ public class SendDetailPresenter extends SendDetailContract.Presenter {
private String mAccountId; private String mAccountId;
private String mAccountName; private String mAccountName;
private ServiceStation mStation; private ServiceStation mStation;
private int mState;
@Override @Override
public void onAttached() { public void onAttached() {
mId = mView.getBundle().getInt(Constants.ID); mId = mView.getBundle().getInt(Constants.ID);
mState = mView.getBundle().getInt(Constants.STATE);
mStation = StationManager.getInstance().getStation(); mStation = StationManager.getInstance().getStation();
mStationId = mStation.getId(); mStationId = mStation.getId();
mAccountId = UserManager.getInstance().getUser().getAccountId(); mAccountId = UserManager.getInstance().getUser().getAccountId();
...@@ -88,6 +91,7 @@ public class SendDetailPresenter extends SendDetailContract.Presenter { ...@@ -88,6 +91,7 @@ public class SendDetailPresenter extends SendDetailContract.Presenter {
@Override @Override
public void getEngineers() { public void getEngineers() {
mView.showDialog();
ManagerApiFactory.getEngineers(mStationId).subscribe(baseObserver(this::showEngineerDialog)); ManagerApiFactory.getEngineers(mStationId).subscribe(baseObserver(this::showEngineerDialog));
} }
...@@ -97,7 +101,17 @@ public class SendDetailPresenter extends SendDetailContract.Presenter { ...@@ -97,7 +101,17 @@ public class SendDetailPresenter extends SendDetailContract.Presenter {
list.add(info.getRealName()); list.add(info.getRealName());
} }
mView.showEngineerDialog(list, (options1, options2, options3, v) mView.showEngineerDialog(list, (options1, options2, options3, v)
-> designate(engineers.get(options1).getAccountId())); -> {
if (mState == ManagerConstant.CHANGE_ORDER) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ACCOUNT_ID, engineers.get(options1).getAccountId());
bundle.putInt(Constants.ID, mId);
bundle.putInt(Constants.STATE,1);
mView.startActivityForReult(ChangeReasonActivity.class, bundle,100);
} else {
designate(engineers.get(options1).getAccountId());
}
});
} }
@Override @Override
......
...@@ -8,6 +8,7 @@ import com.dayu.event.ServiceStation; ...@@ -8,6 +8,7 @@ import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory; import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.ui.activity.ManagerActivity; import com.dayu.managercenter.ui.activity.ManagerActivity;
import com.dayu.provider.router.RouterPath; import com.dayu.provider.router.RouterPath;
import com.dayu.utils.AppManager;
import com.dayu.utils.StationManager; import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
...@@ -17,11 +18,14 @@ import com.dayu.utils.UserManager; ...@@ -17,11 +18,14 @@ import com.dayu.utils.UserManager;
*/ */
public class ServiceStationPresenter extends ServiceStationContract.Presenter { public class ServiceStationPresenter extends ServiceStationContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>(); private ObservableField<Object> datas = new ObservableField<>();
private int mAccountId;
@Override @Override
public void onAttached() { public void onAttached() {
mView.showDialog(); mView.showDialog();
getStations(1268); String accountId = UserManager.getInstance().getUser().getAccountId();
mAccountId = Integer.parseInt(accountId);
getStations(mAccountId);
} }
@Override @Override
...@@ -38,17 +42,25 @@ public class ServiceStationPresenter extends ServiceStationContract.Presenter { ...@@ -38,17 +42,25 @@ public class ServiceStationPresenter extends ServiceStationContract.Presenter {
@Override @Override
public void selectStation(ServiceStation station) { public void selectStation(ServiceStation station) {
ServiceStation last = StationManager.getInstance().getStation();
if (last != null && station.getId() == last.getId()) {
mView.dumpBack();
} else {
mView.showDialog(); mView.showDialog();
StationManager.getInstance().svaeStation(station); StationManager.getInstance().svaeStation(station);
if (UserManager.getInstance().getRole() == Constants.ENGINEER) { AppManager.getInstance().finishAllActivity();
mView.startActivity(ManagerActivity.class); if (UserManager.getInstance().getRole() == Constants.ENGINEER
} else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) { || UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation(); ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
} else if (UserManager.getInstance().getRole() == Constants.MANAGER_NOSITE_ENGINEER
|| UserManager.getInstance().getRole() == Constants.MANAGER) {
mView.startActivity(ManagerActivity.class);
}
} }
} }
@Override @Override
public void refresh() { public void refresh() {
getStations(1268); getStations(mAccountId);
} }
} }
...@@ -26,4 +26,10 @@ public class ChangeReasonActivity extends BaseActivity<ChangeReasonPresenter, Ac ...@@ -26,4 +26,10 @@ public class ChangeReasonActivity extends BaseActivity<ChangeReasonPresenter, Ac
public void setPresenter() { public void setPresenter() {
mBind.setPresenter(mPresenter); mBind.setPresenter(mPresenter);
} }
@Override
public void dumpToDetail() {
setResult(111);
finish();
}
} }
...@@ -2,6 +2,7 @@ package com.dayu.managercenter.ui.activity; ...@@ -2,6 +2,7 @@ package com.dayu.managercenter.ui.activity;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
...@@ -32,4 +33,14 @@ public class ManagerActivity extends AppCompatActivity { ...@@ -32,4 +33,14 @@ public class ManagerActivity extends AppCompatActivity {
.add(R.id.fl_content, ManagerFragment.newInstance()) .add(R.id.fl_content, ManagerFragment.newInstance())
.commit(); .commit();
} }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// 不退出程序,进入后台
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
} }
package com.dayu.managercenter.ui.activity; package com.dayu.managercenter.ui.activity;
import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.os.CountDownTimer;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
...@@ -37,6 +39,7 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A ...@@ -37,6 +39,7 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
private int mState; private int mState;
private BargainDialog mDialog; private BargainDialog mDialog;
private OrderDetail mDetail; private OrderDetail mDetail;
private CountDownTimer mTimer;
@Override @Override
public void setPresenter() { public void setPresenter() {
...@@ -96,6 +99,7 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A ...@@ -96,6 +99,7 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
mBind.tvEngineer.setVisibility(View.VISIBLE); mBind.tvEngineer.setVisibility(View.VISIBLE);
mBind.engineerName.setVisibility(View.VISIBLE); mBind.engineerName.setVisibility(View.VISIBLE);
mBind.customerAcceptance.setText(getString(R.string.change)); mBind.customerAcceptance.setText(getString(R.string.change));
mBind.customerAcceptance.setOnClickListener(v -> mPresenter.getEngineers());
} }
} }
...@@ -114,8 +118,8 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A ...@@ -114,8 +118,8 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
mBind.tvLookMore.setVisibility(View.GONE); mBind.tvLookMore.setVisibility(View.GONE);
} }
}); });
if ((detail.getCreatedSource() != null && detail.getCreatedSource() == 1 || detail.getCreatedSource() == 5) || mState == ManagerConstant.GRAB_ORDER if (mState == ManagerConstant.GRAB_ORDER || mState == ManagerConstant.BARGAIN_ORDER ||
|| mState == ManagerConstant.BARGAIN_ORDER) { (detail.getCreatedSource() != null && detail.getCreatedSource() == 1 || detail.getCreatedSource() == 5)) {
mBind.rlServerContent.setVisibility(View.GONE); mBind.rlServerContent.setVisibility(View.GONE);
mBind.serverName.setVisibility(View.VISIBLE); mBind.serverName.setVisibility(View.VISIBLE);
} else { } else {
...@@ -125,7 +129,7 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A ...@@ -125,7 +129,7 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
mBind.rlServerContent.setAdapter(serverAdapter); mBind.rlServerContent.setAdapter(serverAdapter);
serverAdapter.setData(detail.getSpus()); serverAdapter.setData(detail.getSpus());
} }
mBind.tvState.setText(getStaus(detail.getStatus())); mBind.tvOrderState.setText(getStaus(detail.getStatus()));
if (mBind.leftTime.getVisibility() == View.VISIBLE) { if (mBind.leftTime.getVisibility() == View.VISIBLE) {
setTime(detail.getAppointmentTime(), mBind.leftTime); setTime(detail.getAppointmentTime(), mBind.leftTime);
} }
...@@ -182,16 +186,16 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A ...@@ -182,16 +186,16 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
private void setTime(String endTime, TextView view) { private void setTime(String endTime, TextView view) {
long time = UtilsDate.timeSub(endTime); long time = UtilsDate.timeSub(endTime);
TimeUtils.startTimer(time, 1000, -1, new TimeUtils.OnCountDownCallBack() { mTimer = TimeUtils.startTimer(time, 1000, new TimeUtils.OnCountDownCallBack() {
@Override @Override
public void onProcess(int day, int hour, int minute, int second, int tag) { public void onProcess(int day, int hour, int minute, int second) {
String str = UIUtils.getString(R.string.grab_time); String str = UIUtils.getString(R.string.grab_time);
String result = String.format(str, day, hour, minute, second); String result = String.format(str, day, hour, minute, second);
view.setText(UIUtils.setNumColor(result, Color.RED)); view.setText(UIUtils.setNumColor(result, Color.RED));
} }
@Override @Override
public void onFinish(int tag) { public void onFinish() {
} }
}); });
} }
...@@ -227,4 +231,21 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A ...@@ -227,4 +231,21 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
return mActivity.getString(R.string.no_data); return mActivity.getString(R.string.no_data);
} }
} }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && resultCode == 111) {
mPresenter.querySpInfo(mState);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mTimer != null) {
mTimer.cancel();
}
mTimer = null;
}
} }
...@@ -2,6 +2,7 @@ package com.dayu.managercenter.ui.activity; ...@@ -2,6 +2,7 @@ package com.dayu.managercenter.ui.activity;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation; import com.dayu.event.ServiceStation;
import com.dayu.managercenter.R; import com.dayu.managercenter.R;
import com.dayu.managercenter.databinding.ActivityServiceStationBinding; import com.dayu.managercenter.databinding.ActivityServiceStationBinding;
...@@ -27,6 +28,13 @@ public class ServiceStationActivity extends BaseActivity<ServiceStationPresenter ...@@ -27,6 +28,13 @@ public class ServiceStationActivity extends BaseActivity<ServiceStationPresenter
@Override @Override
public void initView() { public void initView() {
if (getBundle() != null) {
int state = getBundle().getInt(Constants.STATE);
if (state == 1) {
mBind.toolbar.setNavigationIcon(R.drawable.back_btn_normal);
mBind.toolbar.setNavigationOnClickListener(v -> finish());
}
}
mBind.recyclerView.setOnItemClickListener((item, bind) -> mBind.recyclerView.setOnItemClickListener((item, bind) ->
mPresenter.selectStation((ServiceStation) item)); mPresenter.selectStation((ServiceStation) item));
} }
......
package com.dayu.managercenter.ui.adapter; package com.dayu.managercenter.ui.adapter;
import android.graphics.Color; import android.graphics.Color;
import android.os.CountDownTimer;
import android.support.annotation.NonNull;
import android.view.View; import android.view.View;
import com.dayu.base.ui.adapter.BaseViewHolder;
import com.dayu.base.ui.adapter.CoreAdapter; import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.managercenter.R; import com.dayu.managercenter.R;
import com.dayu.managercenter.data.GrabOrder; import com.dayu.managercenter.data.GrabOrder;
...@@ -80,24 +83,33 @@ public class GrabOrderAdapter extends CoreAdapter<GrabOrder, ItemGrabBargainBind ...@@ -80,24 +83,33 @@ public class GrabOrderAdapter extends CoreAdapter<GrabOrder, ItemGrabBargainBind
}); });
} }
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
super.onViewRecycled(holder);
if (holder.mBind instanceof ItemGrabBargainBinding) {
CountDownTimer timer = (CountDownTimer) ((ItemGrabBargainBinding) holder.mBind).leftTime.getTag();
if (timer != null) {
timer.cancel();
}
timer = null;
}
}
private void setTime(String endTime, ItemGrabBargainBinding holder, int position) { private void setTime(String endTime, ItemGrabBargainBinding holder, int position) {
long time = UtilsDate.timeSub(endTime); long time = UtilsDate.timeSub(endTime);
TimeUtils.startTimer(time, 1000, position, new TimeUtils.OnCountDownCallBack() { CountDownTimer timer = TimeUtils.startTimer(time, 1000, new TimeUtils.OnCountDownCallBack() {
@Override @Override
public void onProcess(int day, int hour, int minute, int second, int tag) { public void onProcess(int day, int hour, int minute, int second) {
if (((int) holder.leftTime.getTag()) == tag) {
String str = UIUtils.getString(R.string.grab_time); String str = UIUtils.getString(R.string.grab_time);
String result = String.format(str, day, hour, minute, second); String result = String.format(str, day, hour, minute, second);
holder.leftTime.setText(UIUtils.setNumColor(result, Color.RED)); holder.leftTime.setText(UIUtils.setNumColor(result, Color.RED));
} }
}
@Override @Override
public void onFinish(int tag) { public void onFinish() {
if (((int) holder.leftTime.getTag()) == tag) {
((GrabPresenter) mPresenter).getGrapOrders(); ((GrabPresenter) mPresenter).getGrapOrders();
} }
}
}); });
holder.leftTime.setTag(timer);
} }
} }
...@@ -55,7 +55,6 @@ public class BargainFragment extends BaseFragment<BargainPresenter, FragmentRecy ...@@ -55,7 +55,6 @@ public class BargainFragment extends BaseFragment<BargainPresenter, FragmentRecy
GrabOrderAdapter adapter = new GrabOrderAdapter(true, 1); GrabOrderAdapter adapter = new GrabOrderAdapter(true, 1);
adapter.setViewType(R.layout.item_grab_bargain); adapter.setViewType(R.layout.item_grab_bargain);
mBind.recyclerView.setAdapter(adapter); mBind.recyclerView.setAdapter(adapter);
mPresenter.refresh();
mBind.recyclerView.setOnItemClickListener((item, bind) -> { mBind.recyclerView.setOnItemClickListener((item, bind) -> {
if (((GrabOrder) item).getStatus() == 1) { if (((GrabOrder) item).getStatus() == 1) {
......
...@@ -15,6 +15,11 @@ import com.dayu.managercenter.presenter.changeorder.ChangeOrderContract; ...@@ -15,6 +15,11 @@ import com.dayu.managercenter.presenter.changeorder.ChangeOrderContract;
import com.dayu.managercenter.presenter.changeorder.ChangeOrderPresenter; import com.dayu.managercenter.presenter.changeorder.ChangeOrderPresenter;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity; import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.managercenter.ui.adapter.ManagerOrderAdapter; import com.dayu.managercenter.ui.adapter.ManagerOrderAdapter;
import com.dayu.provider.event.RefreshManagerEvent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List; import java.util.List;
...@@ -42,15 +47,15 @@ public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter, Frag ...@@ -42,15 +47,15 @@ public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter, Frag
@Override @Override
protected void lazyLoad() { protected void lazyLoad() {
super.lazyLoad(); mPresenter.refresh();
} }
@Override @Override
public void initView() { public void initView() {
EventBus.getDefault().register(this);
ManagerOrderAdapter adapter = new ManagerOrderAdapter(true, ManagerConstant.CHANGE_ORDER); ManagerOrderAdapter adapter = new ManagerOrderAdapter(true, ManagerConstant.CHANGE_ORDER);
adapter.setViewType(R.layout.item_manager_order); adapter.setViewType(R.layout.item_manager_order);
mBind.recyclerView.setAdapter(adapter); mBind.recyclerView.setAdapter(adapter);
mPresenter.refresh();
mBind.recyclerView.setOnItemClickListener((item, bind) -> { mBind.recyclerView.setOnItemClickListener((item, bind) -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
...@@ -77,4 +82,11 @@ public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter, Frag ...@@ -77,4 +82,11 @@ public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter, Frag
pvOptions.setPicker(list); pvOptions.setPicker(list);
pvOptions.show(); pvOptions.show();
} }
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichfragment(RefreshManagerEvent event) {
if (event.getState() == ManagerConstant.CHANGE_ORDER) {
mPresenter.refresh();
}
}
} }
...@@ -57,8 +57,6 @@ public class GrabFragment extends BaseFragment<GrabPresenter, FragmentRecycleBin ...@@ -57,8 +57,6 @@ public class GrabFragment extends BaseFragment<GrabPresenter, FragmentRecycleBin
GrabOrderAdapter adapter = new GrabOrderAdapter(true, 0); GrabOrderAdapter adapter = new GrabOrderAdapter(true, 0);
adapter.setViewType(R.layout.item_grab_bargain); adapter.setViewType(R.layout.item_grab_bargain);
mBind.recyclerView.setAdapter(adapter); mBind.recyclerView.setAdapter(adapter);
mPresenter.refresh();
mBind.recyclerView.setOnItemClickListener((item, bind) -> { mBind.recyclerView.setOnItemClickListener((item, bind) -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, (((GrabOrder) item).getId())); bundle.putInt(Constants.ID, (((GrabOrder) item).getId()));
......
...@@ -4,15 +4,23 @@ import android.content.Intent; ...@@ -4,15 +4,23 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.TabLayout; import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.view.View;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.ui.adapter.FragmentBaseAdapter; import com.dayu.base.ui.adapter.FragmentBaseAdapter;
import com.dayu.base.ui.fragment.DataBindingFragment; import com.dayu.base.ui.fragment.DataBindingFragment;
import com.dayu.common.BaseConstant;
import com.dayu.common.Constants;
import com.dayu.managercenter.R; import com.dayu.managercenter.R;
import com.dayu.managercenter.common.ManagerConstant; import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.databinding.FragmentManagerBinding; import com.dayu.managercenter.databinding.FragmentManagerBinding;
import com.dayu.managercenter.ui.activity.ServiceStationActivity; import com.dayu.managercenter.ui.activity.ServiceStationActivity;
import com.dayu.provider.event.ManagerReceiveEvent; import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.utils.AppManager;
import com.dayu.utils.StationManager;
import com.dayu.utils.TabLayoutUtils; import com.dayu.utils.TabLayoutUtils;
import com.dayu.utils.UserManager;
import com.hyphenate.chat.EMClient;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
...@@ -48,7 +56,25 @@ public class ManagerFragment extends DataBindingFragment<FragmentManagerBinding> ...@@ -48,7 +56,25 @@ public class ManagerFragment extends DataBindingFragment<FragmentManagerBinding>
@Override @Override
public void initView() { public void initView() {
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
mBind.tvRightTitle.setOnClickListener(v -> startActivity(new Intent(mActivity, ServiceStationActivity.class))); mBind.title.setText(StationManager.getInstance().getStation().getName());
if (UserManager.getInstance().getRole() == Constants.MANAGER
|| UserManager.getInstance().getRole() == Constants.MANAGER_NOSITE_ENGINEER) {
mBind.titleLeft.setVisibility(View.VISIBLE);
}
mBind.titleLeft.setOnClickListener(v -> {
EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo();
StationManager.getInstance().clear();
AppManager.getInstance().finishAllActivity();
ARouter.getInstance().build(BaseConstant.PATH_LOGIN).navigation();
});
mBind.tvRightTitle.setOnClickListener(v -> {
Bundle bundle = new Bundle();
bundle.putInt(Constants.STATE, 1);
Intent intent = new Intent(mActivity, ServiceStationActivity.class);
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
});
mFragments = new ArrayList<>(); mFragments = new ArrayList<>();
mFragments.add(SendOrderFragment.newInstance()); mFragments.add(SendOrderFragment.newInstance());
mFragments.add(GrabOrderFragment.newInstance()); mFragments.add(GrabOrderFragment.newInstance());
......
...@@ -5,12 +5,24 @@ ...@@ -5,12 +5,24 @@
android:allowBackup="true" android:allowBackup="true"
android:label="@string/app_name" android:label="@string/app_name"
android:supportsRtl="true"> android:supportsRtl="true">
<activity android:name="com.dayu.managercenter.ui.activity.ManagerActivity" /> <activity
<activity android:name="com.dayu.managercenter.ui.activity.ServiceStationActivity" /> android:name="com.dayu.managercenter.ui.activity.ManagerActivity"
<activity android:name="com.dayu.managercenter.ui.activity.SendOrderDetailActivity" /> android:screenOrientation="portrait" />
<activity android:name="com.dayu.managercenter.ui.activity.SubOrderDetailActivity" /> <activity
<activity android:name="com.dayu.managercenter.ui.activity.PreviewActivty" /> android:name="com.dayu.managercenter.ui.activity.ServiceStationActivity"
<activity android:name="com.dayu.managercenter.ui.activity.ChangeReasonActivity" /> android:screenOrientation="portrait" />
<activity
android:name="com.dayu.managercenter.ui.activity.SendOrderDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.managercenter.ui.activity.SubOrderDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.managercenter.ui.activity.PreviewActivty"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.managercenter.ui.activity.ChangeReasonActivity"
android:screenOrientation="portrait" />
</application> </application>
</manifest> </manifest>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_content" android:id="@+id/fl_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
......
...@@ -9,6 +9,14 @@ ...@@ -9,6 +9,14 @@
<RelativeLayout style="@style/title"> <RelativeLayout style="@style/title">
<TextView <TextView
android:id="@+id/title_left"
style="@style/title_left"
android:text="@string/login_out"
android:visibility="gone"
/>
<TextView
android:id="@+id/title"
style="@style/text_title" style="@style/text_title"
android:text="@string/send_order" android:text="@string/send_order"
android:singleLine="true" android:singleLine="true"
......
...@@ -5,6 +5,7 @@ import android.os.Bundle; ...@@ -5,6 +5,7 @@ import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.common.BaseApplication;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.UserInfo; import com.dayu.event.UserInfo;
import com.dayu.provider.router.RouterPath; import com.dayu.provider.router.RouterPath;
...@@ -13,9 +14,9 @@ import com.dayu.usercenter.api.UserApiFactory; ...@@ -13,9 +14,9 @@ import com.dayu.usercenter.api.UserApiFactory;
import com.dayu.usercenter.common.UserConstant; import com.dayu.usercenter.common.UserConstant;
import com.dayu.usercenter.ui.activity.IdentityCertificationActivity; import com.dayu.usercenter.ui.activity.IdentityCertificationActivity;
import com.dayu.usercenter.ui.activity.SmsLoginActivity; import com.dayu.usercenter.ui.activity.SmsLoginActivity;
import com.dayu.utils.AppManager;
import com.dayu.utils.LogUtils; import com.dayu.utils.LogUtils;
import com.dayu.utils.MD5Util; import com.dayu.utils.MD5Util;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils; import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
...@@ -46,7 +47,7 @@ public class PwLoginPresenter extends PwLoginContract.Presenter { ...@@ -46,7 +47,7 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
} }
mView.showDialog(); mView.showDialog();
UserApiFactory.login(phoneNume.get(), MD5Util.encrypt(code.get()), "usernameLogin").subscribe( UserApiFactory.login(phoneNume.get(), MD5Util.encrypt(code.get()), "usernameLogin").subscribe(
baseObserver(this::getSiteId)); baseObserver(this::dumpAndSave));
} }
@Override @Override
...@@ -73,49 +74,55 @@ public class PwLoginPresenter extends PwLoginContract.Presenter { ...@@ -73,49 +74,55 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
@Override @Override
public void getSiteId(UserInfo info) { public void getSiteId(UserInfo info) {
mView.showDialog();
UserApiFactory.getSiteId(Integer.parseInt(info.getAccountId())).subscribe(baseObserver( UserApiFactory.getSiteId(Integer.parseInt(info.getAccountId())).subscribe(baseObserver(
integer -> { integer -> {
info.setSiteId(integer); info.setSiteId(integer);
dumpAndSave(info);
}));
}
@Override
public void dumpAndSave(UserInfo info) {
switch (UserManager.getInstance().getRole()) {
case Constants.MANAGER:
loginHx(info.getHxAccount(), info.getHxPwd()); loginHx(info.getHxAccount(), info.getHxPwd());
UserManager.getInstance().saveUser(info); UserManager.getInstance().saveUser(info);
if (StationManager.getInstance().haveData()) { if (info.getDetectStatus() == 1) {
if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation(); ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
} else { } else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
AppManager.getInstance().finishAllActivity();
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation(); ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
} }
break;
case Constants.ENGINEER:
if (info.getDetectStatus() == 1) {
loginHx(info.getHxAccount(), info.getHxPwd());
UserManager.getInstance().saveUser(info);
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
} else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) { } else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) {
showLoginDialog();
}
}, error -> {
switch (error.subCode) {
case "USER0024": //工程师不属于任何服务站
String message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_not_have_site);
if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
info.setSiteId(-1);
loginHx(info.getHxAccount(), info.getHxPwd());
UserManager.getInstance().saveUser(info); UserManager.getInstance().saveUser(info);
showLoginDialog(info); AppManager.getInstance().finishAllActivity();
} else { ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile)); ToastUtils.showShortToast(message);
} }
break; break;
case Constants.MANAGER_ENGINEER: default:
if (info.getDetectStatus() == 1) { ToastUtils.showShortToast(R.string.login_faile);
loginHx(info.getHxAccount(), info.getHxPwd()); break;
}
}));
}
@Override
public void dumpAndSave(UserInfo info) {
switch (UserManager.getInstance().getRole(info)) {
case Constants.MANAGER:
UserManager.getInstance().saveUser(info); UserManager.getInstance().saveUser(info);
if (StationManager.getInstance().haveData()) { loginHx(info.getHxAccount(), info.getHxPwd());
ARouter.getInstance().build(RouterPath.PATH_MANAGER).navigation();
} else {
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation(); ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
} break;
} else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) { case Constants.ENGINEER:
case Constants.MANAGER_ENGINEER:
if (info.getDetectStatus() == 1 || info.getDetectStatus() == 2 || info.getDetectStatus() == 3) {
UserManager.getInstance().saveUser(info); UserManager.getInstance().saveUser(info);
showLoginDialog(info); getSiteId(info);
} else { } else {
ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile)); ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
} }
...@@ -125,13 +132,17 @@ public class PwLoginPresenter extends PwLoginContract.Presenter { ...@@ -125,13 +132,17 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
} }
} }
private void showLoginDialog(UserInfo userInfo) { private void showLoginDialog() {
mView.showLoginDialog((dialog, confirm) -> { mView.showLoginDialog((dialog, confirm) -> {
if (confirm) { if (confirm) {
mView.startActivity(IdentityCertificationActivity.class); mView.startActivity(IdentityCertificationActivity.class);
} else { } else {
loginHx(userInfo.getHxAccount(), userInfo.getHxPwd()); if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
dumpAndSave(userInfo); ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
} else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
AppManager.getInstance().finishAllActivity();
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
}
} }
}); });
} }
......
...@@ -13,8 +13,8 @@ import com.dayu.usercenter.R; ...@@ -13,8 +13,8 @@ import com.dayu.usercenter.R;
import com.dayu.usercenter.api.UserApiFactory; import com.dayu.usercenter.api.UserApiFactory;
import com.dayu.usercenter.common.UserConstant; import com.dayu.usercenter.common.UserConstant;
import com.dayu.usercenter.ui.activity.IdentityCertificationActivity; import com.dayu.usercenter.ui.activity.IdentityCertificationActivity;
import com.dayu.utils.AppManager;
import com.dayu.utils.LogUtils; import com.dayu.utils.LogUtils;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils; import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
...@@ -57,7 +57,7 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter { ...@@ -57,7 +57,7 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
public void login(String code) { public void login(String code) {
mView.showDialog(); mView.showDialog();
UserApiFactory.login(mPhone, code, "mobileLogin").subscribe(baseObserver( UserApiFactory.login(mPhone, code, "mobileLogin").subscribe(baseObserver(
this::getSiteId, error -> { this::dumpAndSave, error -> {
String message = UIUtils.getString(R.string.login_faile); String message = UIUtils.getString(R.string.login_faile);
switch (error.subCode) { switch (error.subCode) {
case "USER0002": case "USER0002":
...@@ -83,6 +83,9 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter { ...@@ -83,6 +83,9 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
case "USER0024": case "USER0024":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_not_have_site); message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_not_have_site);
break; break;
case "USER0084":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_or_manager_not_exite);
break;
} }
mView.setError(message); mView.setError(message);
})); }));
...@@ -112,49 +115,57 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter { ...@@ -112,49 +115,57 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
@Override @Override
public void getSiteId(UserInfo info) { public void getSiteId(UserInfo info) {
mView.showDialog();
UserApiFactory.getSiteId(Integer.parseInt(info.getAccountId())).subscribe(baseObserver( UserApiFactory.getSiteId(Integer.parseInt(info.getAccountId())).subscribe(baseObserver(
integer -> { integer -> {
info.setSiteId(integer); info.setSiteId(integer);
dumpAndSave(info);
}));
}
@Override
public void dumpAndSave(UserInfo info) {
switch (UserManager.getInstance().getRole()) {
case Constants.MANAGER:
loginHx(info.getHxAccount(), info.getHxPwd()); loginHx(info.getHxAccount(), info.getHxPwd());
UserManager.getInstance().saveUser(info); UserManager.getInstance().saveUser(info);
if (StationManager.getInstance().haveData()) { if (info.getDetectStatus() == 1) {
if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation(); ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
} else { } else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
AppManager.getInstance().finishAllActivity();
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation(); ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
} }
break;
case Constants.ENGINEER:
if (info.getDetectStatus() == 1) {
loginHx(info.getHxAccount(), info.getHxPwd());
UserManager.getInstance().saveUser(info);
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
} else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) { } else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) {
UserManager.getInstance().saveUser(info); showLoginDialog();
showLoginDialog(info);
} else {
ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
} }
break; }, error -> {
case Constants.MANAGER_ENGINEER: switch (error.subCode) {
if (info.getDetectStatus() == 1) { case "USER0024": //工程师不属于任何服务站
String message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_not_have_site);
if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
mView.setError(message);
} else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
info.setSiteId(-1);
loginHx(info.getHxAccount(), info.getHxPwd()); loginHx(info.getHxAccount(), info.getHxPwd());
UserManager.getInstance().saveUser(info); UserManager.getInstance().saveUser(info);
if (StationManager.getInstance().haveData()) { AppManager.getInstance().finishAllActivity();
ARouter.getInstance().build(RouterPath.PATH_MANAGER).navigation();
} else {
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation(); ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
ToastUtils.showShortToast(message);
} }
} else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) { break;
default:
ToastUtils.showShortToast(R.string.login_faile);
break;
}
}));
}
@Override
public void dumpAndSave(UserInfo info) {
switch (UserManager.getInstance().getRole(info)) {
case Constants.MANAGER:
UserManager.getInstance().saveUser(info); UserManager.getInstance().saveUser(info);
showLoginDialog(info); loginHx(info.getHxAccount(), info.getHxPwd());
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
break;
case Constants.ENGINEER:
case Constants.MANAGER_ENGINEER:
if (info.getDetectStatus() == 1 || info.getDetectStatus() == 2 || info.getDetectStatus() == 3) {
UserManager.getInstance().saveUser(info);
getSiteId(info);
} else { } else {
ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile)); ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
} }
...@@ -164,13 +175,17 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter { ...@@ -164,13 +175,17 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
} }
} }
private void showLoginDialog(UserInfo userInfo) { private void showLoginDialog() {
mView.showLoginDialog((dialog, confirm) -> { mView.showLoginDialog((dialog, confirm) -> {
if (confirm) { if (confirm) {
mView.startActivity(IdentityCertificationActivity.class); mView.startActivity(IdentityCertificationActivity.class);
} else { } else {
loginHx(userInfo.getHxAccount(), userInfo.getHxPwd()); if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
dumpAndSave(userInfo); ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
} else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
AppManager.getInstance().finishAllActivity();
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
}
} }
}); });
} }
......
...@@ -61,7 +61,11 @@ public class CertificationResultActivity extends DataBindingActivity<ActivityCer ...@@ -61,7 +61,11 @@ public class CertificationResultActivity extends DataBindingActivity<ActivityCer
AppManager.getInstance().finishActivity(IdentityCertificationActivity.class); AppManager.getInstance().finishActivity(IdentityCertificationActivity.class);
finish(); finish();
} else { } else {
if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation(); ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
} else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
}
} }
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment