Commit f0343d32 by 罗翻

增加角色登录

parent a6a3aed4
Showing with 1129 additions and 217 deletions
......@@ -10,13 +10,19 @@ import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.widget.Toast;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.bigfish.databinding.ActivityInitializeMainBinding;
import com.dayu.bigfish.ui.MainActivity;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.managercenter.ui.activity.ManagerActivity;
import com.dayu.managercenter.ui.activity.ServiceStationActivity;
import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.ui.activity.SmsLoginActivity;
import com.dayu.utils.LogUtils;
import com.dayu.utils.MPermissionUtils;
import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog;
import com.hyphenate.EMCallBack;
......@@ -43,12 +49,14 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
MobclickAgent.openActivityDurationTrack(false);
mActivity = this;
String[] mPerArr = new String[]{Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE
, Manifest.permission.CAMERA};
, Manifest.permission.CAMERA};
MPermissionUtils.requestPermissionsResult(mActivity, SDK_PERMISSION_REQUEST, mPerArr, new MPermissionUtils.OnPermissionListener() {
@Override
public void onPermissionGranted() {
doJump();
Observable.timer(1000, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> doJump());
}
@Override
......@@ -63,22 +71,40 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
}
private void doJump() {
Intent intent;
if (UserManager.getInstance().hasUserInfo()) {
UserInfo info = UserManager.getInstance().getUser();
loginHx(info.getHxAccount(), info.getHxPwd());
intent = new Intent(InitializeActivity.this, MainActivity.class);
} else {
intent = new Intent(InitializeActivity.this, SmsLoginActivity.class);
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()) {
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);
startActivity(intent2);
} else {
intent2 = new Intent(InitializeActivity.this, ServiceStationActivity.class);
}
startActivity(intent2);
break;
default:
break;
}
Observable.timer(1000, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
aLong -> {
startActivity(intent);
finish();
}
);
UserInfo info = UserManager.getInstance().getUser();
loginHx(info.getHxAccount(), info.getHxPwd());
finish();
}
public void loginHx(String hxAccount, String hxPwd) {
......
......@@ -35,7 +35,7 @@ public class MainPresenter extends MainContract.Presenter {
public void onAttached() {
mUser = UserManager.getInstance().getUser();
mAccountId = Integer.parseInt(mUser.getAccountId());
mSiteId = Integer.parseInt(mUser.getSiteId());
mSiteId = mUser.getSiteId();
request();
}
......
......@@ -33,6 +33,7 @@ import com.dayu.common.Constants;
import com.dayu.event.DownloadBean;
import com.dayu.event.UserInfo;
import com.dayu.location.base.LocationUtils;
import com.dayu.managercenter.ui.fragment.ManagerFragment;
import com.dayu.message.ui.fragment.HomeMessageFragment;
import com.dayu.order.ui.activity.ReceivingActivity;
import com.dayu.order.ui.fragment.HomeOrderFragment;
......@@ -40,6 +41,7 @@ import com.dayu.provider.event.RefreshReceivingNum;
import com.dayu.provider.event.SwtichFragment;
import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.ui.fragment.HomePersonFragment;
import com.dayu.utils.TimeUtils;
import com.dayu.utils.UserManager;
import com.dayu.utils.badgeNumberManger.BadgeNumberManager;
import com.dayu.widgets.CustomDialog;
......@@ -66,11 +68,12 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
private TextView[] mTabs;
private NotificationManager notificationManager;
private NotificationCompat.Builder builder;
private ManagerFragment managerFragment;
private HomeFirstTabFragment firstFragment;
private HomeOrderFragment secondFragment;
private HomeMessageFragment thirdFragment;
private HomePersonFragment fourFragment;
private int mFirstPositon = 1;
private int mFirstPositon = 0;
@Override
public int getLayoutId() {
......@@ -79,11 +82,18 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Override
public void initView() {
firstFragment = HomeFirstTabFragment.newInstance();
secondFragment = HomeOrderFragment.newInstance();
thirdFragment = HomeMessageFragment.newInstance();
fourFragment = HomePersonFragment.newInstance();
mFragments = new Fragment[]{firstFragment, secondFragment, thirdFragment, fourFragment};
if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
firstFragment = HomeFirstTabFragment.newInstance();
mFragments = new Fragment[]{firstFragment, secondFragment, thirdFragment, fourFragment};
mFirstPositon = 1;
} else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
managerFragment = ManagerFragment.newInstance();
mFragments = new Fragment[]{managerFragment, secondFragment, thirdFragment, fourFragment};
mFirstPositon=0;
}
mTabs = new TextView[]{mBind.tabFirst, mBind.tabSecond, mBind.tabThird, mBind.tabFour};
addFragment();
initListener();
......@@ -309,9 +319,10 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Override
protected void onDestroy() {
super.onDestroy();
LocationUtils.destroy();
EventBus.getDefault().unregister(this);
TimeUtils.onDestory();
super.onDestroy();
}
@Override
......
......@@ -102,6 +102,10 @@ 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 String BUNDLE = "bundle";
public final static String ID = "id";
//订单详情
......
package com.dayu.managercenter.data;
package com.dayu.event;
/**
* Created by luofan
......@@ -21,7 +21,7 @@ public class ServiceStation {
private Object createTime;
private String telephone;
private int starScore;
private Object accountId;
private Integer accountId;
private String providerRealName;
private String providerName;
private Object providerTypes;
......@@ -149,11 +149,11 @@ public class ServiceStation {
this.starScore = starScore;
}
public Object getAccountId() {
public Integer getAccountId() {
return accountId;
}
public void setAccountId(Object accountId) {
public void setAccountId(Integer accountId) {
this.accountId = accountId;
}
......
package com.dayu.event;
import java.util.List;
/**
* 储存用户信息的类
*
* @author wangceyu
* on 2017/8/28.
* on 2017/8/28.
*/
public class UserInfo {
......@@ -16,7 +18,7 @@ public class UserInfo {
/**
* 用户所属服务商id
*/
private String siteId;
private int siteId;
/**
* 成功时返回的token
*/
......@@ -31,6 +33,15 @@ public class UserInfo {
private String accountName;
private int status;
private int detectStatus;
private List<Integer> roles;
public List<Integer> getRoles() {
return roles;
}
public void setRoles(List<Integer> roles) {
this.roles = roles;
}
public int getDetectStatus() {
return detectStatus;
......@@ -64,11 +75,11 @@ public class UserInfo {
this.accountId = accountId;
}
public String getSiteId() {
public int getSiteId() {
return siteId;
}
public void setSiteId(String siteId) {
public void setSiteId(int siteId) {
this.siteId = siteId;
}
......
package com.dayu.managercenter.common;
package com.dayu.utils;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.utils.SPUtils;
import com.dayu.event.ServiceStation;
import com.google.gson.Gson;
/**
......@@ -31,4 +30,9 @@ public class StationManager {
public ServiceStation getStation() {
return new Gson().fromJson((String) SPUtils.get("big_fish", "SERVICE_STATION", ""), ServiceStation.class);
}
public boolean haveData() {
ServiceStation station = getStation();
return station == null || station.getAccountId() != null;
}
}
......@@ -9,12 +9,12 @@ import android.os.CountDownTimer;
public class TimeUtils {
private static CountDownTimer mTimer;
public static void startTimer(long millisInFuture, long countDownInterval, OnCountDownCallBack callBack) {
mTimer = getTimer(millisInFuture, countDownInterval, callBack);
public static void startTimer(long millisInFuture, long countDownInterval, int tag, OnCountDownCallBack callBack) {
mTimer = getTimer(millisInFuture, countDownInterval, tag, callBack);
mTimer.start();
}
private static CountDownTimer getTimer(long millisInFuture, long interval, OnCountDownCallBack callBack) {
private static CountDownTimer getTimer(long millisInFuture, long interval, int tag, OnCountDownCallBack callBack) {
return new CountDownTimer(millisInFuture, interval) {
@Override
public void onTick(long millisUntilFinished) {
......@@ -31,14 +31,14 @@ public class TimeUtils {
hour = hour % 24;
}
if (callBack != null) {
callBack.onProcess(day, hour, minute, second);
callBack.onProcess(day, hour, minute, second, tag);
}
}
@Override
public void onFinish() {
if (callBack != null) {
callBack.onFinish();
callBack.onFinish(tag);
}
}
};
......@@ -53,8 +53,8 @@ public class TimeUtils {
public interface OnCountDownCallBack {
void onProcess(int day, int hour, int minute, int second);
void onProcess(int day, int hour, int minute, int second, int tag);
void onFinish();
void onFinish(int tag);
}
}
......@@ -2,6 +2,7 @@ package com.dayu.utils;
import android.text.TextUtils;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.google.gson.Gson;
......@@ -64,10 +65,36 @@ public class UserManager {
UserInfo userInfo = getUser();
if (userInfo != null) {
//有数据
return !TextUtils.isEmpty(userInfo.getAccountId()) && !TextUtils.isEmpty(userInfo.getSiteId())
&& !TextUtils.isEmpty(userInfo.getAccountName());
return !TextUtils.isEmpty(userInfo.getAccountId()) && !TextUtils.isEmpty(userInfo.getAccountName());
}
return false;
}
public boolean isManager() {
UserInfo userInfo = getUser();
return userInfo.getRoles().contains(3);
}
public int getRole() {
boolean isEngineer = false;
boolean isManager = false;
UserInfo userInfo = getUser();
if (userInfo == null || userInfo.getRoles() == null || (TextUtils.isEmpty(userInfo.getAccountId()) && TextUtils.isEmpty(userInfo.getAccountName()))) {
return Constants.NOT_LOGIN;
}
if (userInfo.getRoles().contains(2)) {
isEngineer = true;
}
if (userInfo.getRoles().contains(3)) {
isManager = true;
}
if (isEngineer && isManager) {
return Constants.MANAGER_ENGINEER;
} else if (isEngineer) {
return Constants.ENGINEER;
} else if (isManager) {
return Constants.MANAGER;
}
return Constants.NOT_LOGIN;
}
}
......@@ -395,7 +395,8 @@
<string name="order_price">授权单价</string>
<string name="refuse">拒绝</string>
<string name="change_engineer">改派工程师</string>
<string name="designate_engineer">改派工程师</string>
<string name="change_engineer_name">改派工程师(%1$s)</string>
<string name="designate_engineer">指派工程师</string>
<string name="comform_receive_order">确定接单</string>
<string name="send_order_price">&#160;&#160;&#160;&#160;</string>
<string name="send_order_price_trim">发单价</string>
......
......@@ -17,5 +17,7 @@
<activity android:name=".ui.activity.ServiceStationActivity" />
<activity android:name=".ui.activity.SendOrderDetailActivity" />
<activity android:name=".ui.activity.SubOrderDetailActivity" />
<activity android:name=".ui.activity.PreviewActivty" />
<activity android:name=".ui.activity.ChangeReasonActivity" />
</application>
</manifest>
......@@ -2,12 +2,12 @@ package com.dayu.managercenter.api;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.data.Bargain;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.data.Order;
import com.dayu.managercenter.data.OrderDetail;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.managercenter.data.SpInfo;
import java.util.List;
......@@ -59,7 +59,7 @@ public class ManagerApiFactory {
return Api.getService(ManagerService.class).bargain(body).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<Bargain>> getBargainPrice(int spSiteId,int kaOrderId) {
public static Observable<BasePageBean<Bargain>> getBargainPrice(int spSiteId, int kaOrderId) {
return Api.getService(ManagerService.class).getBargainPrice(spSiteId, kaOrderId).compose(Api.applySchedulers());
}
......@@ -70,4 +70,16 @@ public class ManagerApiFactory {
public static Observable<SpInfo> querySpInfo(int accountId) {
return Api.getService(ManagerService.class).querySpInfo(accountId).compose(Api.applySchedulers());
}
public static Observable<Boolean> refuse(int orderId, String createBy, String reason) {
return Api.getService(ManagerService.class).refuse(orderId, createBy, reason).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<Order>> getDesignateList(int siteId, int changeEngineerStatus, int page, int pageSize) {
return Api.getService(ManagerService.class).getDesignateList(siteId, changeEngineerStatus, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<Boolean> changeEngineer(int id, String reason, int engineerId) {
return Api.getService(ManagerService.class).changeEngineer(id, reason, engineerId).compose(Api.applySchedulers());
}
}
......@@ -3,13 +3,13 @@ package com.dayu.managercenter.api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.base.api.protocol.BaseResponse;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Bargain;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.data.Order;
import com.dayu.managercenter.data.OrderDetail;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.managercenter.data.SpInfo;
import java.util.List;
......@@ -34,7 +34,7 @@ public interface ManagerService {
* @return
*/
@GET(ManagerConstant.SERVICE_STATIONS)
Observable<BaseResponse<List<ServiceStation>>> getServiceStations(@Path("id") int id);
Observable<BaseResponse<List<ServiceStation>>> getServiceStations(@Path("accountId") int id);
/**
* 获取工单列表.
......@@ -161,4 +161,38 @@ public interface ManagerService {
*/
@GET(ManagerConstant.QUERY_SP)
Observable<BaseResponse<SpInfo>> querySpInfo(@Path("accountId") int accountId);
/**
* 拒绝.
*
* @param orderId
* @param createBy
* @param reason
* @return
*/
@POST(ManagerConstant.REFUSE)
Observable<BaseResponse<Boolean>> refuse(@Query("orderId") int orderId, @Query("createBy") String createBy, @Query("reason") String reason);
/**
* 获取可改派列表.
*
* @param siteId
* @param changeEngineerStatus
* @param page
* @param pageSize
* @return
*/
@GET(ManagerConstant.DESIGNATE_LIST)
Observable<BaseResponse<BasePageBean<Order>>> getDesignateList(@Query("siteId") int siteId, @Query("changeEngineerStatus") int changeEngineerStatus, @Query("page") int page, @Query("pageSize") int pageSize);
/**
* 改派工程师.
*
* @param id
* @param reason
* @param engineerId
* @return
*/
@POST(ManagerConstant.CHANGE_ENGINEER)
Observable<BaseResponse<Boolean>> changeEngineer(@Query("id") int id, @Query("reason") String reason, @Query("engineerId") int engineerId);
}
......@@ -15,15 +15,15 @@ public class ManagerConstant {
public final static String[] GRAB_TAB = {UIUtils.getString(R.string.can_grab_order), UIUtils.getString(R.string.bargain_order)};
public final static int SEND_ORDER= 0;
public final static int GRAB_ORDER= 1;
public final static int BARGAIN_ORDER= 11;
public final static int Eu_ORDER= 2;
public final static int CHANGE_ORDER= 3;
public final static int SEND_ORDER = 0;
public final static int GRAB_ORDER = 1;
public final static int BARGAIN_ORDER = 11;
public final static int Eu_ORDER = 2;
public final static int CHANGE_ORDER = 3;
/**
* 获取服务站列表.
*/
public final static String SERVICE_STATIONS = "/api-user/" + "serviceProviderSite/serverList/{id}";
public final static String SERVICE_STATIONS = "/api-user/" + "serviceProviderSite/serverListByShopKeeper/{accountId}";
/**
* 获取工单列表.
......@@ -43,12 +43,12 @@ public class ManagerConstant {
/**
* 获取用户预约列表.
*/
public final static String EU_ORDER = "api-order/"+"euOrders/provider";
public final static String EU_ORDER = "api-order/" + "euOrders/provider";
/**
* 获取工程师列表.
*/
public final static String ENGINEER_LIST = "api-user/"+"engineerInfo/selectEngineerListByCategoryIdAndServiceType";
public final static String ENGINEER_LIST = "api-user/" + "engineerInfo/selectEngineerListByCategoryIdAndServiceType";
/**
* 工单详情信息,包含评价,投诉,服务记录.
......@@ -59,7 +59,7 @@ public class ManagerConstant {
/**
* 获取服务单信息.
*/
public static final String KA_ORDER_DETAILS = "/api-ka-order/"+"kaFlashOrder/orderDetail/id/{orderId}";
public static final String KA_ORDER_DETAILS = "/api-ka-order/" + "kaFlashOrder/orderDetail/id/{orderId}";
/**
* 指派工程师.
......@@ -69,16 +69,31 @@ public class ManagerConstant {
/**
* 议价.
*/
public static final String BARGAIN = "api-ka-order/"+"kaOrderBargain";
public static final String BARGAIN = "api-ka-order/" + "kaOrderBargain";
/**
* 接单.
*/
public static final String RECEIVE_ORDER = "api-ka-order/"+"kaFlashOrder/spRobOrders";
public static final String RECEIVE_ORDER = "api-ka-order/" + "kaFlashOrder/spRobOrders";
/**
* 查询sp信息.
*/
public static final String QUERY_SP ="/api-user/"+"serviceProviderInfo/queryLegalProviderInfo/accountId/{accountId}";
public static final String QUERY_SP = "/api-user/" + "serviceProviderInfo/queryLegalProviderInfo/accountId/{accountId}";
/**
* eu单拒绝.
*/
public static final String REFUSE = "/api-order/" + "euOrders/refuse";
/**
* 获取可改派列表.
*/
public static final String DESIGNATE_LIST = "/api-order/" + "orders/provider";
/**
* 改派工程师.
*/
public static final String CHANGE_ENGINEER = "/api-order/" + "orders/reassignment";
}
......@@ -128,7 +128,7 @@ public class Order {
private String createTime;
private String appointmentTime;
private String comment;
private Object confirmDoorTime;
private String confirmDoorTime;
private Object confirmDoorComment;
private Object serviceRecordComment;
private Object customerCheckComment;
......@@ -147,7 +147,7 @@ public class Order {
private Object closePhase;
private int siteId;
private Object engineerId;
private Object engineerName;
private String engineerName;
private Object serviceType;
private double paymentPrice;
private String serviceName;
......@@ -450,11 +450,11 @@ public class Order {
this.comment = comment;
}
public Object getConfirmDoorTime() {
public String getConfirmDoorTime() {
return confirmDoorTime;
}
public void setConfirmDoorTime(Object confirmDoorTime) {
public void setConfirmDoorTime(String confirmDoorTime) {
this.confirmDoorTime = confirmDoorTime;
}
......@@ -602,11 +602,11 @@ public class Order {
this.engineerId = engineerId;
}
public Object getEngineerName() {
public String getEngineerName() {
return engineerName;
}
public void setEngineerName(Object engineerName) {
public void setEngineerName(String engineerName) {
this.engineerName = engineerName;
}
......
......@@ -60,6 +60,7 @@ public class OrderDetail implements Serializable {
private Object closePhase;
private int siteId;
private int engineerId;
private String engineerName;
private Object feedback;
private Object complait;
private List<RecordBean> record;
......@@ -77,6 +78,14 @@ public class OrderDetail implements Serializable {
private Integer payStatus;//或null:未支付 2.已支付3.支付成功4.支付失败
private Double paymentPrice;//发单价
public String getEngineerName() {
return engineerName;
}
public void setEngineerName(String engineerName) {
this.engineerName = engineerName;
}
public Double getPaymentPrice() {
return paymentPrice;
}
......
......@@ -4,12 +4,12 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.common.StationManager;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils;
import org.greenrobot.eventbus.EventBus;
......
package com.dayu.managercenter.presenter.changeorder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
public interface ChangeOrderContract {
interface View extends BaseView {
void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
}
abstract class Presenter extends BaseListPresenter<View> {
public abstract void getDesignateList();
public abstract void getEngineers(int id);
}
}
package com.dayu.managercenter.presenter.changeorder;
import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.ui.activity.ChangeReasonActivity;
import com.dayu.utils.StationManager;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
......@@ -8,14 +19,55 @@ import android.databinding.ObservableField;
*/
public class ChangeOrderPresenter extends ChangeOrderContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>();
private ServiceStation mStation;
private int mPage;
@Override
public void onAttached() {
mStation = StationManager.getInstance().getStation();
}
@Override
public ObservableField<Object> getSourceDatas() {
return datas;
}
@Override
public void getDesignateList() {
ManagerApiFactory.getDesignateList(mStation.getId(), 1, mPage, Constants.PAGESIZE).subscribe(baseObserver(
orderBasePageBean -> datas.set(orderBasePageBean),
error -> datas.set(Constants.FAILED)));
}
@Override
public void getEngineers(int id) {
mView.showDialog();
ManagerApiFactory.getEngineers(mStation.getId()).subscribe(baseObserver(
engineers -> showEngineerDialog(engineers, id)));
}
private void showEngineerDialog(List<Engineer> engineers, int id) {
List<String> list = new ArrayList<>();
for (Engineer info : engineers) {
list.add(info.getRealName());
}
mView.showEngineerDialog(list, (options1, options2, options3, v)
-> {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ACCOUNT_ID, engineers.get(options1).getAccountId());
bundle.putInt(Constants.ID, id);
mView.startActivity(ChangeReasonActivity.class, bundle);
});
}
@Override
public void refresh() {
mPage = 1;
getDesignateList();
}
@Override
public void loadMore() {
getDesignateList();
}
}
package com.dayu.managercenter.presenter.changereason;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo
* on 2016/8/4.
*/
public interface ChangeReasonContract {
interface View extends BaseView {
}
abstract class Presenter extends BasePresenter<View> {
public abstract void changeEngineer();
}
}
package com.dayu.managercenter.presenter.changereason;
import android.databinding.ObservableField;
import com.dayu.common.Constants;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.utils.ToastUtils;
/**
* Created by luofan
* on 2017/11/8.
*/
public class ChangeReasonPresenter extends ChangeReasonContract.Presenter {
public ObservableField<String> mReason = new ObservableField<>();
private int mAccountId;
private int mId;
@Override
public void onAttached() {
mAccountId = mView.getBundle().getInt(Constants.ACCOUNT_ID);
mId = mView.getBundle().getInt(Constants.ID);
}
@Override
public void changeEngineer() {
mView.showDialog();
ManagerApiFactory.changeEngineer(mId, mReason.get(), mAccountId).subscribe(
baseObserver(aBoolean -> {
ToastUtils.showShortToast("改派成功");
mView.dumpBack();
})
);
}
}
......@@ -4,13 +4,14 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.common.StationManager;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.provider.event.RefreshGrabEvent;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils;
import org.greenrobot.eventbus.EventBus;
......@@ -20,6 +21,7 @@ import java.util.HashMap;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import okhttp3.MediaType;
import okhttp3.RequestBody;
......@@ -68,6 +70,12 @@ public class GrabPresenter extends GrabContract.Presenter {
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
ManagerApiFactory.bargain(body).subscribe(baseObserver(aBoolean -> {
refresh();
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, (order.getId()));
bundle.putInt(Constants.STATE, ManagerConstant.BARGAIN_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
Observable.timer(500, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread())
.subscribe(l -> EventBus.getDefault().post(new RefreshGrabEvent(1)));
}));
}
......
......@@ -4,18 +4,18 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.R;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.common.StationManager;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.data.OrderDetail;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.managercenter.data.Spu;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.DesignateEvent;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.provider.event.RefreshGrabEvent;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
......
......@@ -3,12 +3,12 @@ package com.dayu.managercenter.presenter.sendorder;
import android.databinding.ObservableField;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.event.UserInfo;
import com.dayu.managercenter.R;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.StationManager;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager;
import java.util.ArrayList;
......
......@@ -3,7 +3,7 @@ package com.dayu.managercenter.presenter.servicestation;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.event.ServiceStation;
/**
* Created by luo on 2016/8/4.
......
......@@ -4,10 +4,12 @@ import android.databinding.ObservableField;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.StationManager;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.managercenter.ui.activity.ManagerActivity;
import com.dayu.provider.router.RouterPath;
import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager;
/**
* Created by luofan
......@@ -36,8 +38,13 @@ public class ServiceStationPresenter extends ServiceStationContract.Presenter {
@Override
public void selectStation(ServiceStation station) {
mView.showDialog();
StationManager.getInstance().svaeStation(station);
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
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();
}
}
@Override
......
package com.dayu.managercenter.presenter.subcribeorder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
public interface SubcribeOrderContract {
interface View extends BaseView {
void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
}
abstract class Presenter extends BaseListPresenter<View> {
public abstract void getSubcribeOrder();
public abstract void refuse(int id);
public abstract void designate(int id, int accountId);
/**
* 获取工程师列表.
*/
public abstract void getEngineers(int id);
}
}
......@@ -3,9 +3,15 @@ package com.dayu.managercenter.presenter.subcribeorder;
import android.databinding.ObservableField;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.R;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.StationManager;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.managercenter.data.Engineer;
import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
......@@ -15,10 +21,12 @@ public class SubcribeOrderPresenter extends SubcribeOrderContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>();
private int mPage;
private int mId;
private String mName;
@Override
public void onAttached() {
ServiceStation station = StationManager.getInstance().getStation();
mName = UserManager.getInstance().getUser().getAccountName();
mId = station.getId();
}
......@@ -29,11 +37,46 @@ public class SubcribeOrderPresenter extends SubcribeOrderContract.Presenter {
@Override
public void getSubcribeOrder() {
mView.showDialog();
ManagerApiFactory.getEuOrder(mPage, Constants.PAGESIZE, mId, 8, 5).subscribe(baseObserver(
orders -> datas.set(orders), error -> datas.set(Constants.FAILED)));
}
@Override
public void refuse(int id) {
mView.showDialog();
ManagerApiFactory.refuse(id, mName, "").subscribe(baseObserver(aBoolean -> {
mView.showToast("工单已拒绝");
refresh();
}));
}
@Override
public void designate(int accountId, int id) {
mView.showDialog();
ManagerApiFactory.designate(id, accountId, mName).subscribe(baseObserver(aBoolean -> {
mView.showToast(R.string.designate_success);
refresh();
}));
}
@Override
public void getEngineers(int id) {
mView.showDialog();
ManagerApiFactory.getEngineers(mId).subscribe(baseObserver(
engineers -> showEngineerDialog(engineers, id)));
}
private void showEngineerDialog(List<Engineer> engineers, int id) {
List<String> list = new ArrayList<>();
for (Engineer info : engineers) {
list.add(info.getRealName());
}
mView.showEngineerDialog(list, (options1, options2, options3, v)
-> designate(engineers.get(options1).getAccountId(), id));
}
@Override
public void refresh() {
mPage = 1;
getSubcribeOrder();
......
package com.dayu.managercenter.presenter.subdetail;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
import com.dayu.managercenter.data.OrderDetail;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
......@@ -12,6 +15,8 @@ public interface SubDetailContract {
interface View extends BaseView {
void getData(OrderDetail detail);
void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
}
abstract class Presenter extends BasePresenter<View> {
......@@ -20,5 +25,12 @@ public interface SubDetailContract {
*/
public abstract void getOrderInfo();
public abstract void refuse(int id);
public abstract void designate(int id, int accountId);
public abstract void getEngineers(int id);
}
}
package com.dayu.managercenter.presenter.subdetail;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Engineer;
import com.dayu.provider.event.RefreshManagerEvent;
import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
......@@ -9,10 +19,12 @@ import com.dayu.managercenter.api.ManagerApiFactory;
*/
public class SubDetailPresenter extends SubDetailContract.Presenter {
private int mId;
private String mName;
@Override
public void onAttached() {
mId = mView.getBundle().getInt(Constants.ID);
mName = UserManager.getInstance().getUser().getAccountName();
getOrderInfo();
}
......@@ -22,4 +34,39 @@ public class SubDetailPresenter extends SubDetailContract.Presenter {
ManagerApiFactory.getOrderInfo(mId).subscribe(baseObserver(
orderDetail -> mView.getData(orderDetail)));
}
@Override
public void refuse(int id) {
mView.showDialog();
ManagerApiFactory.refuse(id, mName, "").subscribe(baseObserver(aBoolean -> {
mView.showToast("工单已拒绝");
EventBus.getDefault().post(new RefreshManagerEvent(ManagerConstant.Eu_ORDER));
mView.dumpBack();
}));
}
@Override
public void designate(int accountId,int id) {
mView.showDialog();
ManagerApiFactory.designate(id, accountId, mName).subscribe(baseObserver(aBoolean -> {
mView.showToast(R.string.designate_success);
EventBus.getDefault().post(new RefreshManagerEvent(ManagerConstant.Eu_ORDER));
mView.dumpBack();
}));
}
@Override
public void getEngineers(int id) {
ManagerApiFactory.getEngineers(id).subscribe(baseObserver(
engineers -> showEngineerDialog(engineers, id)));
}
private void showEngineerDialog(List<Engineer> engineers, int id) {
List<String> list = new ArrayList<>();
for (Engineer info : engineers) {
list.add(info.getRealName());
}
mView.showEngineerDialog(list, (options1, options2, options3, v)
-> designate(engineers.get(options1).getAccountId(), id));
}
}
package com.dayu.managercenter.ui.activity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.managercenter.R;
import com.dayu.managercenter.databinding.ActivityChangeReasonBinding;
import com.dayu.managercenter.presenter.changereason.ChangeReasonContract;
import com.dayu.managercenter.presenter.changereason.ChangeReasonPresenter;
/**
* Created by luofan
* on 2017/11/8.
*/
public class ChangeReasonActivity extends BaseActivity<ChangeReasonPresenter, ActivityChangeReasonBinding>
implements ChangeReasonContract.View {
@Override
public int getLayoutId() {
return R.layout.activity_change_reason;
}
@Override
public void initView() {
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
}
......@@ -5,14 +5,16 @@ import android.support.v7.app.AppCompatActivity;
import android.view.Window;
import android.view.WindowManager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.managercenter.R;
import com.dayu.managercenter.ui.fragment.ManagerFragment;
import com.dayu.provider.router.RouterPath;
/**
* Created by luofan
* on 2018/2/7.
*/
@Route(path = RouterPath.PATH_MANAGER)
public class ManagerActivity extends AppCompatActivity {
@Override
......
package com.dayu.managercenter.ui.activity;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
import com.dayu.managercenter.databinding.ActivityPicPreviewBinding;
import com.dayu.utils.GlideImageLoader;
import java.util.ArrayList;
/**
* 选中图片页面
* on 2016/12/2.
* Created by MrWang
*/
public class PreviewActivty extends DataBindingActivity<ActivityPicPreviewBinding> {
private MyPageAdapter adapter;
private Context mContext;
public ArrayList<String> mInfos = new ArrayList<>();
@Override
public int getLayoutId() {
return R.layout.activity_pic_preview;
}
@Override
public void initView() {
mContext = this;
mInfos = getIntent().getStringArrayListExtra(Constants.BUNDLE_KEY_ID);
adapter = new MyPageAdapter(mInfos);
mBind.vpPreview.setAdapter(adapter);
mBind.vpPreview.setCurrentItem(getIntent().getIntExtra(Constants.BUNDLE_KEY_ID, 0));
mBind.titileBack.setOnClickListener(o -> finish());
}
class MyPageAdapter extends PagerAdapter {
private ArrayList<String> listViews;
public MyPageAdapter(ArrayList<String> listViews) {
this.listViews = listViews;
}
public int getCount() {
return listViews.size();
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(mContext);
GlideImageLoader.load(mContext, listViews.get(position), imageView);
container.addView(imageView);
return imageView;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
}
package com.dayu.managercenter.ui.activity;
import android.app.Dialog;
import android.graphics.Color;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
......@@ -14,8 +13,6 @@ import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.common.StationManager;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.data.OrderDetail;
import com.dayu.managercenter.data.Spu;
import com.dayu.managercenter.databinding.ActivitySendDetailBinding;
......@@ -23,6 +20,7 @@ import com.dayu.managercenter.databinding.ItemSendOrderDetailBinding;
import com.dayu.managercenter.presenter.senddetail.SendDetailContract;
import com.dayu.managercenter.presenter.senddetail.SendDetailPresenter;
import com.dayu.managercenter.ui.view.BargainDialog;
import com.dayu.utils.StationManager;
import com.dayu.utils.TimeUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsDate;
......@@ -93,13 +91,11 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
mBind.customerAcceptance.setOnClickListener(v -> showReceiveDialog());
mBind.priceState.setVisibility(View.VISIBLE);
} else if (mState == ManagerConstant.CHANGE_ORDER) {
mBind.tvState.setVisibility(View.GONE);
mBind.tvOrderState.setVisibility(View.GONE);
mBind.tvState.setVisibility(View.VISIBLE);
mBind.tvOrderState.setVisibility(View.VISIBLE);
mBind.tvEngineer.setVisibility(View.VISIBLE);
mBind.engineerName.setVisibility(View.VISIBLE);
mBind.customerAcceptance.setText(getString(R.string.change));
mBind.customerAcceptance.setOnClickListener(v -> {
});
}
}
......@@ -118,7 +114,7 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
mBind.tvLookMore.setVisibility(View.GONE);
}
});
if ((detail.getCreatedSource() != null && detail.getCreatedSource() == 1) || mState == ManagerConstant.GRAB_ORDER
if ((detail.getCreatedSource() != null && detail.getCreatedSource() == 1 || detail.getCreatedSource() == 5) || mState == ManagerConstant.GRAB_ORDER
|| mState == ManagerConstant.BARGAIN_ORDER) {
mBind.rlServerContent.setVisibility(View.GONE);
mBind.serverName.setVisibility(View.VISIBLE);
......@@ -151,12 +147,12 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
String s = UIUtils.getString(R.string.bargain_notice);
String result = String.format(s, StationManager.getInstance().getStation().getName());
mDialog = new BargainDialog(mActivity, R.style.CustomDialog, result,
(dialog1, confirm, str) -> {
(dialog1, confirm, editText) -> {
if (confirm) {
if (Double.parseDouble(str) <= mDetail.getPaymentPrice()) {
if (Double.parseDouble(editText.getText().toString().trim()) <= mDetail.getPaymentPrice()) {
mDialog.setError(getString(R.string.bargain_dialog_error));
} else {
mPresenter.bargain(str, mDetail);
mPresenter.bargain(editText.getText().toString().trim(), mDetail);
}
}
});
......@@ -186,16 +182,16 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
private void setTime(String endTime, TextView view) {
long time = UtilsDate.timeSub(endTime);
TimeUtils.startTimer(time, 1000, new TimeUtils.OnCountDownCallBack() {
TimeUtils.startTimer(time, 1000, -1, new TimeUtils.OnCountDownCallBack() {
@Override
public void onProcess(int day, int hour, int minute, int second) {
public void onProcess(int day, int hour, int minute, int second, int tag) {
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() {
public void onFinish(int tag) {
}
});
}
......
......@@ -2,8 +2,8 @@ package com.dayu.managercenter.ui.activity;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.R;
import com.dayu.managercenter.data.ServiceStation;
import com.dayu.managercenter.databinding.ActivityServiceStationBinding;
import com.dayu.managercenter.presenter.servicestation.ServiceStationContract;
import com.dayu.managercenter.presenter.servicestation.ServiceStationPresenter;
......
package com.dayu.managercenter.ui.activity;
import android.content.Intent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
import com.dayu.managercenter.data.OrderDetail;
import com.dayu.managercenter.databinding.ActivitySubOrderDetailBinding;
import com.dayu.managercenter.presenter.subdetail.SubDetailContract;
import com.dayu.managercenter.presenter.subdetail.SubDetailPresenter;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsScreen;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
......@@ -16,6 +29,7 @@ import com.dayu.utils.UIUtils;
*/
public class SubOrderDetailActivity extends BaseActivity<SubDetailPresenter, ActivitySubOrderDetailBinding> implements SubDetailContract.View {
private boolean mFlag;
private int mIvWeight;
@Override
public void setPresenter() {
......@@ -28,7 +42,8 @@ public class SubOrderDetailActivity extends BaseActivity<SubDetailPresenter, Act
@Override
public void initView() {
mIvWeight = (UtilsScreen.getScreenWidth(mActivity) - UtilsScreen.dip2px(mActivity, 20)) / 5;
mBind.llPhoto.removeAllViews();
}
@Override
......@@ -44,6 +59,31 @@ public class SubOrderDetailActivity extends BaseActivity<SubDetailPresenter, Act
mBind.tvLookMore.setVisibility(View.GONE);
}
});
mBind.refuse.setOnClickListener(v -> mPresenter.refuse(detail.getId()));
mBind.designate.setOnClickListener(v -> mPresenter.getEngineers(detail.getSiteId()));
initPhoto(detail.getAccessories(), mBind.llPhoto);
}
public void initPhoto(List<OrderDetail.accessories> list, LinearLayout layout) {
layout.removeAllViews();
ArrayList<String> pics = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
ImageView view = new ImageView(mActivity);
view.setLayoutParams(new RelativeLayout.LayoutParams(mIvWeight, mIvWeight));
view.setPadding(0, 0, 10, 0);
String path = list.get(i).getUrl();
pics.add(path);
GlideImageLoader.load(mActivity, path, view);
view.setOnClickListener(v -> dumpPic(pics));
layout.addView(view);
}
}
private void dumpPic(ArrayList<String> list) {
Intent intent = new Intent(this, PreviewActivty.class);
intent.putStringArrayListExtra(Constants.BUNDLE_KEY_ID, list);
int DELETECODE = 0;
startActivityForResult(intent, DELETECODE);
}
public void lookMore() {
......@@ -57,4 +97,15 @@ public class SubOrderDetailActivity extends BaseActivity<SubDetailPresenter, Act
mBind.orderRemark.setMaxLines(2);
}
}
@Override
public void showEngineerDialog(List<String> list, OnOptionsSelectListener listener) {
//条件选择器
OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, listener)
.setContentTextSize(18)
.setLineSpacingMultiplier(2.0f)
.build();
pvOptions.setPicker(list);
pvOptions.show();
}
}
......@@ -33,7 +33,8 @@ public class GrabOrderAdapter extends CoreAdapter<GrabOrder, ItemGrabBargainBind
holder.grabAddress.setText(address);
holder.createTime.setText(item.getCreateTime());
if (state == 0) {
setTime(item.getAppointmentTime(), holder);
holder.leftTime.setTag(position);
setTime(item.getAppointmentTime(), holder, position);
holder.leftTime.setVisibility(View.VISIBLE);
holder.tvBargin.setVisibility(View.VISIBLE);
holder.arrow.setVisibility(View.VISIBLE);
......@@ -79,19 +80,23 @@ public class GrabOrderAdapter extends CoreAdapter<GrabOrder, ItemGrabBargainBind
});
}
private void setTime(String endTime, ItemGrabBargainBinding holder) {
private void setTime(String endTime, ItemGrabBargainBinding holder, int position) {
long time = UtilsDate.timeSub(endTime);
TimeUtils.startTimer(time, 1000, new TimeUtils.OnCountDownCallBack() {
TimeUtils.startTimer(time, 1000, position, new TimeUtils.OnCountDownCallBack() {
@Override
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));
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));
}
}
@Override
public void onFinish() {
((GrabPresenter) mPresenter).getGrapOrders();
public void onFinish(int tag) {
if (((int) holder.leftTime.getTag()) == tag) {
((GrabPresenter) mPresenter).getGrapOrders();
}
}
});
}
......
......@@ -42,22 +42,6 @@ public class ManagerOrderAdapter extends CoreAdapter<Order, ItemManagerOrderBind
} else {
holder.tvOrderDetail.setText(item.getSpuName());
}
String time = item.getAppointmentTime();
if (TextUtils.isEmpty(time)) {
holder.itemTody.setText(mContext.getString(R.string.no_appointment));
holder.itemTime.setVisibility(View.GONE);
} else {
String dateTime = null;
try {
dateTime = UtilsDate.changeFormat(time, FORMAT_ONE, LONG_TIME_FORMAT_TWO);
} catch (ParseException e) {
e.printStackTrace();
}
holder.itemTody.setText(UtilsDate.getDayOrIsToday(time));
holder.itemTime.setText(dateTime);
holder.itemTime.setVisibility(View.VISIBLE);
}
if (item.getCreatedSource() == 2 || item.getCreatedSource() == 3 || item.getCreatedSource() == 4) {
if (TextUtils.isEmpty(item.getSpus().get(0).getKaSpuName())) {
......@@ -81,17 +65,24 @@ public class ManagerOrderAdapter extends CoreAdapter<Order, ItemManagerOrderBind
} else {
holder.tvServerType.setVisibility(View.GONE);
}
holder.itemTextPhone.setOnClickListener(v -> {
if (mOnChildClickListener != null) {
mOnChildClickListener.OnChildClick(holder.itemTextPhone, this, position);
}
});
holder.itemUpdataTime.setOnClickListener(v -> {
if (mOnChildClickListener != null) {
mOnChildClickListener.OnChildClick(holder.itemUpdataTime, this, position);
}
});
String time = item.getAppointmentTime();
switch (state) {
case ManagerConstant.SEND_ORDER:
holder.itemTextPhone.setText(mContext.getString(R.string.designate));
holder.itemUpdataTime.setVisibility(View.GONE);
holder.orderLineOne.setVisibility(View.GONE);
holder.tvOrderDetail.setVisibility(View.VISIBLE);
holder.itemTextPhone.setOnClickListener(v -> {
if (mOnChildClickListener != null) {
mOnChildClickListener.OnChildClick(holder.itemTextPhone, this, position);
}
});
break;
case ManagerConstant.Eu_ORDER:
holder.itemTextPhone.setText(mContext.getString(R.string.refuse));
......@@ -101,13 +92,35 @@ public class ManagerOrderAdapter extends CoreAdapter<Order, ItemManagerOrderBind
holder.tvOrderDetail.setVisibility(View.GONE);
break;
case ManagerConstant.CHANGE_ORDER:
holder.itemTextPhone.setText(mContext.getString(R.string.change_engineer));
String str = mContext.getString(R.string.change_engineer_name);
holder.itemTextPhone.setText(String.format(str, item.getEngineerName()));
holder.itemUpdataTime.setVisibility(View.GONE);
holder.orderLineOne.setVisibility(View.GONE);
holder.tvOrderDetail.setVisibility(View.VISIBLE);
if (item.getStatus() == 2) {
time = item.getAppointmentTime();
holder.tvOrderTime.setText(mContext.getString(R.string.have_appointment));
} else if (item.getStatus() == 3) {
time = item.getConfirmDoorTime();
holder.tvOrderTime.setText(mContext.getString(R.string.tv_home_tab_one_subscribe_time));
}
break;
default:
break;
}
if (TextUtils.isEmpty(time)) {
holder.itemTody.setText(mContext.getString(R.string.no_appointment));
holder.itemTime.setVisibility(View.GONE);
} else {
String dateTime = null;
try {
dateTime = UtilsDate.changeFormat(time, FORMAT_ONE, LONG_TIME_FORMAT_TWO);
} catch (ParseException e) {
e.printStackTrace();
}
holder.itemTody.setText(UtilsDate.getDayOrIsToday(time));
holder.itemTime.setText(dateTime);
holder.itemTime.setVisibility(View.VISIBLE);
}
}
}
......@@ -6,14 +6,15 @@ import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.common.StationManager;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.databinding.FragmentRecycleBinding;
import com.dayu.managercenter.presenter.bargainorder.BargainContract;
import com.dayu.managercenter.presenter.bargainorder.BargainPresenter;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.managercenter.ui.adapter.GrabOrderAdapter;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.provider.event.RefreshGrabEvent;
import com.dayu.utils.StationManager;
import com.dayu.utils.UIUtils;
import com.dayu.widgets.CustomDialog;
......@@ -95,4 +96,9 @@ public class BargainFragment extends BaseFragment<BargainPresenter, FragmentRecy
public void swtichfragment(RefreshGrabEvent event) {
mPresenter.refresh();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichfragment(ManagerReceiveEvent event) {
mPresenter.refresh();
}
}
......@@ -2,19 +2,27 @@ package com.dayu.managercenter.ui.fragment;
import android.os.Bundle;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Order;
import com.dayu.managercenter.databinding.FragmentRecycleBinding;
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 java.util.List;
/**
* Created by luofan
* on 2018/8/27.
*/
public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter,FragmentRecycleBinding> implements ChangeOrderContract.View{
public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter, FragmentRecycleBinding> implements ChangeOrderContract.View {
public static ChangeOrderFragment newInstance() {
Bundle args = new Bundle();
ChangeOrderFragment fragment = new ChangeOrderFragment();
......@@ -42,6 +50,31 @@ public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter,Fragm
ManagerOrderAdapter adapter = new ManagerOrderAdapter(true, ManagerConstant.CHANGE_ORDER);
adapter.setViewType(R.layout.item_manager_order);
mBind.recyclerView.setAdapter(adapter);
// mPresenter.refresh();
mPresenter.refresh();
mBind.recyclerView.setOnItemClickListener((item, bind) -> {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, (((Order) item).getId()));
bundle.putInt(Constants.STATE, ManagerConstant.CHANGE_ORDER);
startActivity(SendOrderDetailActivity.class, bundle);
});
mBind.recyclerView.mCoreAdapter.setOnChildClickListener((view, adapter1, position) -> {
Order order = (Order) mBind.recyclerView.getDatas().get(position);
if (view.getId() == R.id.item_text_phone) {
mPresenter.getEngineers(order.getId());
}
});
}
@Override
public void showEngineerDialog(List<String> list, OnOptionsSelectListener listener) {
//条件选择器
OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, listener)
.setContentTextSize(18)
.setLineSpacingMultiplier(2.0f)
.build();
pvOptions.setPicker(list);
pvOptions.show();
}
}
......@@ -13,6 +13,7 @@ import com.dayu.managercenter.presenter.graborder.GrabPresenter;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.managercenter.ui.adapter.GrabOrderAdapter;
import com.dayu.managercenter.ui.view.BargainDialog;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.provider.event.RefreshGrabEvent;
import com.dayu.utils.UIUtils;
import com.dayu.widgets.CustomDialog;
......@@ -80,20 +81,22 @@ public class GrabFragment extends BaseFragment<GrabPresenter, FragmentRecycleBin
String s = UIUtils.getString(R.string.bargain_notice);
String result = String.format(s, order.getSiteName());
mDialog = new BargainDialog(mActivity, R.style.CustomDialog, result,
(dialog1, confirm, str) -> {
(dialog1, confirm, editText) -> {
if (confirm) {
if (Double.parseDouble(str) <= order.getPaymentPrice()) {
if (Double.parseDouble(editText.getText().toString().trim()) <= order.getPaymentPrice()) {
mDialog.setError(getString(R.string.bargain_dialog_error));
} else {
mPresenter.bargain(str, order);
mPresenter.bargain(editText.getText().toString().trim(), order);
}
}
mDialog.dismiss();
});
mDialog.setTitle(mActivity.getString(R.string.bargain_titile))
.setNegativeButton(mActivity.getString(R.string.cancle))
.setPositiveButton(mActivity.getString(R.string.bargain_comform))
.setNegativeButtonColor(R.color.default_editext_color);
mDialog.show();
}
@Override
......@@ -118,4 +121,9 @@ public class GrabFragment extends BaseFragment<GrabPresenter, FragmentRecycleBin
public void swtichfragment(RefreshGrabEvent event) {
mPresenter.refresh();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichfragment(ManagerReceiveEvent event) {
mPresenter.refresh();
}
}
......@@ -2,6 +2,9 @@ package com.dayu.managercenter.ui.fragment;
import android.os.Bundle;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
......@@ -12,6 +15,13 @@ import com.dayu.managercenter.presenter.subcribeorder.SubcribeOrderContract;
import com.dayu.managercenter.presenter.subcribeorder.SubcribeOrderPresenter;
import com.dayu.managercenter.ui.activity.SubOrderDetailActivity;
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;
/**
* Created by luofan
......@@ -43,6 +53,7 @@ public class SubcribeOrderFragment extends BaseFragment<SubcribeOrderPresenter,
@Override
public void initView() {
EventBus.getDefault().register(this);
ManagerOrderAdapter adapter = new ManagerOrderAdapter(true, ManagerConstant.Eu_ORDER);
adapter.setViewType(R.layout.item_manager_order);
mBind.recyclerView.setAdapter(adapter);
......@@ -52,5 +63,31 @@ public class SubcribeOrderFragment extends BaseFragment<SubcribeOrderPresenter,
bundle.putInt(Constants.ID, (((Order) item).getId()));
startActivity(SubOrderDetailActivity.class, bundle);
});
mBind.recyclerView.mCoreAdapter.setOnChildClickListener((view, adapter1, position) -> {
Order order = (Order) mBind.recyclerView.getDatas().get(position);
if (view.getId() == R.id.item_text_phone) {
mPresenter.refuse(order.getId());
} else if (view.getId() == R.id.item_updata_time) {
mPresenter.getEngineers(order.getId());
}
});
}
@Override
public void showEngineerDialog(List<String> list, OnOptionsSelectListener listener) {
//条件选择器
OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, listener)
.setContentTextSize(18)
.setLineSpacingMultiplier(2.0f)
.build();
pvOptions.setPicker(list);
pvOptions.show();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichfragment(RefreshManagerEvent event) {
if (event.getState() == ManagerConstant.Eu_ORDER) {
mPresenter.refresh();
}
}
}
......@@ -5,6 +5,7 @@ import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
......@@ -12,6 +13,11 @@ import com.dayu.common.MyTextWatcher;
import com.dayu.managercenter.R;
import com.dayu.utils.UIUtils;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
/**
* Created by luofan on 2017/11/10.
......@@ -154,6 +160,11 @@ public class BargainDialog extends Dialog implements View.OnClickListener {
}
}
});
edittext.requestFocus();
Observable.timer(300, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(l ->{
InputMethodManager inputManager = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(edittext, 0);
});
submitTxt.setOnClickListener(this);
}
......@@ -163,18 +174,18 @@ public class BargainDialog extends Dialog implements View.OnClickListener {
int i = v.getId();
if (i == R.id.cancel) {
if (listener != null) {
listener.onClick(this, false, "");
listener.onClick(this, false, edittext);
}
this.dismiss();
} else if (i == R.id.submit) {
if (listener != null) {
listener.onClick(this, true, edittext.getText().toString().trim());
listener.onClick(this, true, edittext);
}
}
}
public interface OnCloseListener {
void onClick(Dialog dialog, boolean confirm, String str);
void onClick(Dialog dialog, boolean confirm, EditText editText);
}
}
......@@ -9,6 +9,8 @@
<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" />
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="presenter"
type="com.dayu.managercenter.presenter.changereason.ChangeReasonPresenter" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/cl_home_listview_bg"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/title_idea"
style="@style/title">
<TextView
android:id="@+id/text_idea"
style="@style/text_title"
android:text="改派原因" />
<ImageView
android:id="@+id/title_back"
style="@style/title_image_back"
android:onClick="@{()->presenter.dumpBack()}"
/>
<TextView
android:id="@+id/tv_right_title"
style="@style/title_right_text"
android:onClick="@{()->presenter.changeEngineer()}"
android:text="@string/submit"
android:textColor="@color/cl_home_button"
android:textSize="15sp" />
</RelativeLayout>
<ImageView style="@style/card_line" />
<EditText
android:id="@+id/et_content"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_163"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="top"
android:hint="请填写改派原因"
android:paddingLeft="@dimen/dp_13"
android:paddingTop="@dimen/dp_17"
android:maxLength="200"
android:text="@={presenter.mReason}"
android:textColor="@color/cl_home_title_text_color"
android:textColorHint="@color/cl_selector_hui"
android:textSize="@dimen/sp_13.3" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/cl_home_edit_text"
android:orientation="vertical"
>
<RelativeLayout
android:id="@+id/title_finish"
style="@style/title"
>
<TextView
style="@style/text_title"
android:text="@string/pre_look"
/>
<ImageView
android:id="@+id/titile_back"
style="@style/title_image_back"/>
</RelativeLayout>
<android.support.v4.view.ViewPager
android:id="@+id/vp_preview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/cl_order_text_one"
android:unselectedAlpha="1">
</android.support.v4.view.ViewPager>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -131,6 +131,7 @@
android:layout_marginLeft="19dp"
android:layout_marginTop="@dimen/dp_15"
android:layout_toRightOf="@+id/tv_engineer"
android:text="@{item.engineerName}"
android:textColor="@color/cl_home_title_text_color"
android:textSize="14sp" />
......@@ -148,7 +149,7 @@
android:id="@+id/ll_server_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tv_num"
android:layout_below="@id/tv_engineer"
android:layout_marginLeft="19dp"
android:layout_toRightOf="@+id/tv_content"
android:orientation="vertical">
......@@ -279,23 +280,23 @@
android:layout_marginLeft="19dp"
android:layout_marginTop="15dp"
android:layout_toRightOf="@+id/tv_my_price"
android:text="@{presenter.price}"
android:textColor="@color/cl_home_title_text_color"
android:textSize="14sp"
android:text="@{presenter.price}"
android:visibility="gone" />
<TextView
android:id="@+id/price_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/tv_order_price"
android:layout_marginLeft="19dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp"
android:text="确认中"
android:textColor="@color/cl_home_title_text_color"
android:textSize="14sp"
android:text="确认中"
android:visibility="gone" />
<TextView
......
......@@ -62,6 +62,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:paddingBottom="15dp"
android:paddingLeft="15dp">
<TextView
......@@ -273,6 +274,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:paddingBottom="15dp"
android:paddingLeft="15dp">
<TextView
......@@ -423,7 +425,7 @@
android:orientation="horizontal">
<TextView
android:id="@+id/bargain"
android:id="@+id/refuse"
android:layout_width="0dp"
android:layout_height="49dp"
android:layout_weight="1"
......@@ -435,7 +437,7 @@
android:visibility="visible" />
<TextView
android:id="@+id/customer_acceptance"
android:id="@+id/designate"
android:layout_width="0dp"
android:layout_height="49dp"
android:layout_weight="1"
......
......@@ -5,7 +5,7 @@
<variable
name="item"
type="com.dayu.managercenter.data.ServiceStation" />
type="com.dayu.event.ServiceStation" />
<import type="com.dayu.utils.UIUtils" />
</data>
......
......@@ -24,7 +24,7 @@ public class HomeOrderPresenter extends HomeOrderContract.Presenter {
// UserManager.getInstance().saveUserForJson(json);
UserInfo userInfo = UserManager.getInstance().getUser();
mUserId = Integer.parseInt(userInfo.getAccountId());
mSiteId = Integer.parseInt(userInfo.getSiteId());
mSiteId = userInfo.getSiteId();
}
public void getTabNum(int index) {
......
......@@ -52,7 +52,7 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
public void onAttached() {
UserInfo userInfo = UserManager.getInstance().getUser();
mUserId = Integer.parseInt(userInfo.getAccountId());
mSiteId = Integer.parseInt(userInfo.getSiteId());
mSiteId = userInfo.getSiteId();
mState = mView.getState();
}
......
......@@ -41,7 +41,7 @@ public class ReceivingPresenter extends ReceivingContract.Presenter {
public void onAttached() {
UserInfo userInfo = UserManager.getInstance().getUser();
mUserId = Integer.parseInt(userInfo.getAccountId());
mSiteId = Integer.parseInt(userInfo.getSiteId());
mSiteId = userInfo.getSiteId();
refresh();
}
......
......@@ -86,17 +86,21 @@ public class SubcribeTimePresenter extends SubcribeContract.Presenter {
if (TextUtils.isEmpty(mHour.get()) || TextUtils.isEmpty(mDay.get())) {
mView.showToast(R.string.input_day_time);
} else {
ProgressUtil.setCanDismiss(false);
mView.showDialog();
ProgressUtil.isTouchDismiss(false);
mView.showToast(R.string.on_commite_data);
try {
String d = UtilsDate.changeFormat(mDay.get(), LONG_DATE, LONG_DATE_FORMAT);
mTime = d + " " + mHour.get() + ":00";
} catch (ParseException e) {
e.printStackTrace();
}
subcribeTime(mOrderId, mTime, mInfo.get());
if (isLegal()) {
ProgressUtil.setCanDismiss(false);
mView.showDialog();
ProgressUtil.isTouchDismiss(false);
mView.showToast(R.string.on_commite_data);
subcribeTime(mOrderId, mTime, mInfo.get());
} else {
mView.showToast(R.string.input_right_time);
}
}
}
......@@ -147,7 +151,7 @@ public class SubcribeTimePresenter extends SubcribeContract.Presenter {
mView.selectTime(new boolean[]{false, false, false, true, true, false}, this::onTimeSelect);
}
public void onTimeSelect(Date date, View v) {
private void onTimeSelect(Date date, View v) {
if (mType == 1) {
String time = UtilsDate.getTime(date);
if (UtilsDate.dayDiff(UtilsDate.getNowDate(), date) >= 0) {
......@@ -159,20 +163,19 @@ public class SubcribeTimePresenter extends SubcribeContract.Presenter {
int year = UtilsDate.getYear(date);
int month = UtilsDate.getMonth(date);
int day = UtilsDate.getDay(date);
if (year == UtilsDate.getToYear() && month == UtilsDate.getToMonth() && day == UtilsDate.getToday()) {
mIsToday = true;
} else {
mIsToday = false;
}
mIsToday = year == UtilsDate.getToYear() && month == UtilsDate.getToMonth() && day == UtilsDate.getToday();
} else {
String nowtime = UtilsDate.getCurrDate(LONG_TIME_FORMAT_TWO);
String hour = UtilsDate.dateToString(date, LONG_TIME_FORMAT_TWO);
if (mIsToday && UtilsDate.stringtoDate(nowtime, LONG_TIME_FORMAT_TWO).getTime() - UtilsDate.stringtoDate(hour, LONG_TIME_FORMAT_TWO).getTime() >= 0) {
mView.showToast(R.string.input_right_time);
return;
} else {
mHour.set(hour);
}
}
}
private boolean isLegal() {
return UtilsDate.getLongFromyyyyMMddHHmmss(mTime) - System.currentTimeMillis() > 0;
}
}
......@@ -33,7 +33,7 @@ public class OrderRecordPresenter extends OrderRecordContract.Presenter {
public void onAttached() {
UserInfo userInfo = UserManager.getInstance().getUser();
mUserId = Integer.parseInt(userInfo.getAccountId());
mSiteId = Integer.parseInt(userInfo.getSiteId());
mSiteId = userInfo.getSiteId();
serchStr.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable observable, int i) {
......
package com.dayu.provider.event;
/**
* Created by luofan
* on 2018/9/4.
*/
public class RefreshManagerEvent {
private int state;
public RefreshManagerEvent(int state) {
this.state = state;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
}
......@@ -29,5 +29,6 @@ public class RouterPath {
* 店长模块
*/
public final static String PATH_SERVICESTATION="/manager/servicestation";
public final static String PATH_MANAGER="/manager/manager_home";
}
......@@ -101,4 +101,8 @@ public class UserApiFactory {
public static Observable<String> modifyPwd(String accountId, String ordpwd, String newpwd1, String newpwd2) {
return Api.getDownloadService(UserService.class).modifyPwd(accountId, ordpwd, newpwd1, newpwd2).compose(Api.applySchedulers());
}
public static Observable<Integer> getSiteId(int accountId) {
return Api.getDownloadService(UserService.class).getSiteId(accountId).compose(Api.applySchedulers());
}
}
......@@ -35,7 +35,7 @@ public interface UserService {
*/
@POST(UserConstant.LOGIN_URL)
Observable<BaseResponse<UserInfo>> login(@Query("telephone") String phone
, @Query("smsCode") String smsCode,@Query("loginType") String loginType);
, @Query("smsCode") String smsCode, @Query("loginType") String loginType);
/**
* 获取验证码
......@@ -185,6 +185,7 @@ public interface UserService {
/**
* 忘记密码发送验证码.
*
* @param telephone
* @param type
* @return
......@@ -194,6 +195,7 @@ public interface UserService {
/**
* 忘记密码校验验证码.
*
* @param telephone
* @param smsCode
* @return
......@@ -203,6 +205,7 @@ public interface UserService {
/**
* 忘记密码.
*
* @param token
* @param newpwd1
* @param newpwd2
......@@ -213,6 +216,7 @@ public interface UserService {
/**
* 修改密码.
*
* @param accountId
* @param ordpwd
* @param newpwd1
......@@ -221,4 +225,13 @@ public interface UserService {
*/
@POST(UserConstant.MODIFY_PWD)
Observable<BaseResponse<String>> modifyPwd(@Query("accountId") String accountId, @Query("ordpwd") String ordpwd, @Query("newpwd1") String newpwd1, @Query("newpwd2") String newpwd2);
/**
* 获取siteId.
*
* @param accountId
* @return
*/
@GET(UserConstant.GET_SITEID)
Observable<BaseResponse<Integer>> getSiteId(@Path("accountId") int accountId);
}
......@@ -103,4 +103,9 @@ public class UserConstant {
* 修改密码.
*/
public final static String MODIFY_PWD = "/api-user/" + "account/modifyPwd";
/**
* 获取工程师siteid.
*/
public final static String GET_SITEID = "/api-user/" + "serviceProviderSite/findSiteIdByAccountId/{accountId}";
}
......@@ -25,6 +25,8 @@ public interface PwLoginContract {
*/
public abstract void login();
public abstract void getSiteId(UserInfo info);
/**
* 跳转到主界面并保存用户信息.
*/
......
......@@ -5,6 +5,7 @@ import android.os.Bundle;
import android.text.TextUtils;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.R;
......@@ -14,6 +15,7 @@ import com.dayu.usercenter.ui.activity.IdentityCertificationActivity;
import com.dayu.usercenter.ui.activity.SmsLoginActivity;
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;
......@@ -43,17 +45,8 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
return;
}
mView.showDialog();
UserApiFactory.login(phoneNume.get(), MD5Util.encrypt(code.get()), "usernameLogin").subscribe(baseObserver(userInfo -> {
if (userInfo.getDetectStatus() == 1) {
loginHx(userInfo.getHxAccount(), userInfo.getHxPwd());
dumpAndSave(userInfo);
} else if (userInfo.getDetectStatus() == 2 || userInfo.getDetectStatus() == 3) {
UserManager.getInstance().saveUser(userInfo);
showLoginDialog(userInfo);
} else {
ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
}
}));
UserApiFactory.login(phoneNume.get(), MD5Util.encrypt(code.get()), "usernameLogin").subscribe(
baseObserver(this::getSiteId));
}
@Override
......@@ -79,9 +72,57 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
}
@Override
public void getSiteId(UserInfo info) {
UserApiFactory.getSiteId(Integer.parseInt(info.getAccountId())).subscribe(baseObserver(
integer -> {
info.setSiteId(integer);
dumpAndSave(info);
}));
}
@Override
public void dumpAndSave(UserInfo info) {
UserManager.getInstance().saveUser(info);
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
switch (UserManager.getInstance().getRole()) {
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();
}
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) {
UserManager.getInstance().saveUser(info);
showLoginDialog(info);
} else {
ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
}
break;
default:
break;
}
}
private void showLoginDialog(UserInfo userInfo) {
......
......@@ -55,5 +55,12 @@ public interface SmsLoginContract {
*/
public abstract void loginHx(String hxAccount, String hxPwd);
/**
* 获取siteId.
*
* @param accountId
*/
public abstract void getSiteId(UserInfo info);
}
}
......@@ -6,6 +6,7 @@ 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;
import com.dayu.usercenter.R;
......@@ -13,6 +14,7 @@ import com.dayu.usercenter.api.UserApiFactory;
import com.dayu.usercenter.common.UserConstant;
import com.dayu.usercenter.ui.activity.IdentityCertificationActivity;
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;
......@@ -54,45 +56,36 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
@Override
public void login(String code) {
mView.showDialog();
UserApiFactory.login(mPhone, code, "mobileLogin").subscribe(baseObserver(userInfo -> {
if (userInfo.getDetectStatus() == 1) {
loginHx(userInfo.getHxAccount(), userInfo.getHxPwd());
dumpAndSave(userInfo);
} else if (userInfo.getDetectStatus() == 2 || userInfo.getDetectStatus() == 3) {
UserManager.getInstance().saveUser(userInfo);
showLoginDialog(userInfo);
} else {
ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
}
}, error -> {
String message = UIUtils.getString(R.string.login_faile);
switch (error.subCode) {
case "USER0002":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_unsend_or_expire);
break;
case "USER0004":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.not_engineer);
break;
case "USER0005":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.account_frozen);
break;
case "USER0020":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_unsend_or_expire);
break;
case "GLOBAL0101":
case "USER0021":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_error);
break;
case "USER0003":
case "USER0023":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_acount_notavialibe);
break;
case "USER0024":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_not_have_site);
break;
}
mView.setError(message);
}));
UserApiFactory.login(mPhone, code, "mobileLogin").subscribe(baseObserver(
this::getSiteId, error -> {
String message = UIUtils.getString(R.string.login_faile);
switch (error.subCode) {
case "USER0002":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_unsend_or_expire);
break;
case "USER0004":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.not_engineer);
break;
case "USER0005":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.account_frozen);
break;
case "USER0020":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_unsend_or_expire);
break;
case "GLOBAL0101":
case "USER0021":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_error);
break;
case "USER0003":
case "USER0023":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_acount_notavialibe);
break;
case "USER0024":
message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_not_have_site);
break;
}
mView.setError(message);
}));
}
@Override
......@@ -118,10 +111,57 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
}
@Override
public void getSiteId(UserInfo info) {
UserApiFactory.getSiteId(Integer.parseInt(info.getAccountId())).subscribe(baseObserver(
integer -> {
info.setSiteId(integer);
dumpAndSave(info);
}));
}
@Override
public void dumpAndSave(UserInfo info) {
// mView.setError("");
UserManager.getInstance().saveUser(info);
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
switch (UserManager.getInstance().getRole()) {
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();
}
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) {
UserManager.getInstance().saveUser(info);
showLoginDialog(info);
} else {
ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
}
break;
default:
break;
}
}
private void showLoginDialog(UserInfo userInfo) {
......
......@@ -64,7 +64,7 @@ public class HomePersonFragment extends BaseFragment<HomePersonPresenter, Fragme
public void initView() {
UserInfo userInfo = UserManager.getInstance().getUser();
userId = Integer.parseInt(userInfo.getAccountId());
siteId = Integer.parseInt(userInfo.getSiteId());
siteId = userInfo.getSiteId();
ProgressUtil.startLoad(mActivity);
EventBus.getDefault().register(this);
// mPresenter.getAllData(userId, siteId);
......
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