Commit d6f9d5dc by 罗翻

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

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