diff --git a/app/src/main/java/com/dayu/bigfish/InitializeActivity.java b/app/src/main/java/com/dayu/bigfish/InitializeActivity.java index 598b955..2e3b568 100755 --- a/app/src/main/java/com/dayu/bigfish/InitializeActivity.java +++ b/app/src/main/java/com/dayu/bigfish/InitializeActivity.java @@ -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) { diff --git a/app/src/main/java/com/dayu/bigfish/presenter/main/MainPresenter.java b/app/src/main/java/com/dayu/bigfish/presenter/main/MainPresenter.java index db7043c..4be4e88 100644 --- a/app/src/main/java/com/dayu/bigfish/presenter/main/MainPresenter.java +++ b/app/src/main/java/com/dayu/bigfish/presenter/main/MainPresenter.java @@ -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(); } diff --git a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java index 10aff54..3236bf7 100644 --- a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java +++ b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java @@ -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 diff --git a/baseSDK/src/main/java/com/dayu/common/Constants.java b/baseSDK/src/main/java/com/dayu/common/Constants.java index d07f87e..317ae93 100755 --- a/baseSDK/src/main/java/com/dayu/common/Constants.java +++ b/baseSDK/src/main/java/com/dayu/common/Constants.java @@ -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"; //订单详情 diff --git a/managercenter/src/main/java/com/dayu/managercenter/data/ServiceStation.java b/baseSDK/src/main/java/com/dayu/event/ServiceStation.java similarity index 96% rename from managercenter/src/main/java/com/dayu/managercenter/data/ServiceStation.java rename to baseSDK/src/main/java/com/dayu/event/ServiceStation.java index c34989d..65d84e7 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/data/ServiceStation.java +++ b/baseSDK/src/main/java/com/dayu/event/ServiceStation.java @@ -1,4 +1,4 @@ -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; } diff --git a/baseSDK/src/main/java/com/dayu/event/UserInfo.java b/baseSDK/src/main/java/com/dayu/event/UserInfo.java index 0a27944..3ffbd9a 100755 --- a/baseSDK/src/main/java/com/dayu/event/UserInfo.java +++ b/baseSDK/src/main/java/com/dayu/event/UserInfo.java @@ -1,10 +1,12 @@ 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; } diff --git a/managercenter/src/main/java/com/dayu/managercenter/common/StationManager.java b/baseSDK/src/main/java/com/dayu/utils/StationManager.java similarity index 84% rename from managercenter/src/main/java/com/dayu/managercenter/common/StationManager.java rename to baseSDK/src/main/java/com/dayu/utils/StationManager.java index fa4678e..d54e907 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/common/StationManager.java +++ b/baseSDK/src/main/java/com/dayu/utils/StationManager.java @@ -1,7 +1,6 @@ -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; + } } diff --git a/baseSDK/src/main/java/com/dayu/utils/TimeUtils.java b/baseSDK/src/main/java/com/dayu/utils/TimeUtils.java index 25b22f7..7e58db3 100644 --- a/baseSDK/src/main/java/com/dayu/utils/TimeUtils.java +++ b/baseSDK/src/main/java/com/dayu/utils/TimeUtils.java @@ -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); } } diff --git a/baseSDK/src/main/java/com/dayu/utils/UserManager.java b/baseSDK/src/main/java/com/dayu/utils/UserManager.java index 8a54f36..e115f8c 100755 --- a/baseSDK/src/main/java/com/dayu/utils/UserManager.java +++ b/baseSDK/src/main/java/com/dayu/utils/UserManager.java @@ -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; + } } diff --git a/baseSDK/src/main/res/values/strings.xml b/baseSDK/src/main/res/values/strings.xml index 81ba948..0c4108c 100644 --- a/baseSDK/src/main/res/values/strings.xml +++ b/baseSDK/src/main/res/values/strings.xml @@ -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">发  单  价</string> <string name="send_order_price_trim">发单价</string> diff --git a/managercenter/src/main/debug/AndroidManifest.xml b/managercenter/src/main/debug/AndroidManifest.xml index eb80397..343f926 100644 --- a/managercenter/src/main/debug/AndroidManifest.xml +++ b/managercenter/src/main/debug/AndroidManifest.xml @@ -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> diff --git a/managercenter/src/main/java/com/dayu/managercenter/api/ManagerApiFactory.java b/managercenter/src/main/java/com/dayu/managercenter/api/ManagerApiFactory.java index 3cbd357..3dbf854 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/api/ManagerApiFactory.java +++ b/managercenter/src/main/java/com/dayu/managercenter/api/ManagerApiFactory.java @@ -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()); + } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/api/ManagerService.java b/managercenter/src/main/java/com/dayu/managercenter/api/ManagerService.java index a2e727f..3fd9911 100755 --- a/managercenter/src/main/java/com/dayu/managercenter/api/ManagerService.java +++ b/managercenter/src/main/java/com/dayu/managercenter/api/ManagerService.java @@ -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); } diff --git a/managercenter/src/main/java/com/dayu/managercenter/common/ManagerConstant.java b/managercenter/src/main/java/com/dayu/managercenter/common/ManagerConstant.java index eb04f40..ef102a9 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/common/ManagerConstant.java +++ b/managercenter/src/main/java/com/dayu/managercenter/common/ManagerConstant.java @@ -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"; } diff --git a/managercenter/src/main/java/com/dayu/managercenter/data/Order.java b/managercenter/src/main/java/com/dayu/managercenter/data/Order.java index 66582dd..d03a506 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/data/Order.java +++ b/managercenter/src/main/java/com/dayu/managercenter/data/Order.java @@ -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; } diff --git a/managercenter/src/main/java/com/dayu/managercenter/data/OrderDetail.java b/managercenter/src/main/java/com/dayu/managercenter/data/OrderDetail.java index fdb0665..52a78df 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/data/OrderDetail.java +++ b/managercenter/src/main/java/com/dayu/managercenter/data/OrderDetail.java @@ -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; } diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/bargainorder/BargainPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/bargainorder/BargainPresenter.java index e68410a..f547d45 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/bargainorder/BargainPresenter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/bargainorder/BargainPresenter.java @@ -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; diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderContract.java index 63c7c58..9ac9fec 100755 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderContract.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderContract.java @@ -1,17 +1,24 @@ 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); } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderPresenter.java index 9e38688..e650eb7 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderPresenter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderPresenter.java @@ -1,6 +1,17 @@ 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(); + } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonContract.java new file mode 100755 index 0000000..8cd89df --- /dev/null +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonContract.java @@ -0,0 +1,20 @@ +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(); + } +} diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonPresenter.java new file mode 100644 index 0000000..540a5e4 --- /dev/null +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonPresenter.java @@ -0,0 +1,35 @@ +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(); + }) + ); + } +} diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/graborder/GrabPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/graborder/GrabPresenter.java index 4228235..39c111a 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/graborder/GrabPresenter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/graborder/GrabPresenter.java @@ -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))); })); } diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/senddetail/SendDetailPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/senddetail/SendDetailPresenter.java index aea0161..7a989b8 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/senddetail/SendDetailPresenter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/senddetail/SendDetailPresenter.java @@ -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; diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/sendorder/SendOrderPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/sendorder/SendOrderPresenter.java index a0415ce..f2322ab 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/sendorder/SendOrderPresenter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/sendorder/SendOrderPresenter.java @@ -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; diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationContract.java index 916a070..ea9c81a 100755 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationContract.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationContract.java @@ -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. diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationPresenter.java index 6f50846..9519c3c 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationPresenter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationPresenter.java @@ -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 diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderContract.java index 71d6ea4..3de4aef 100755 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderContract.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderContract.java @@ -1,18 +1,33 @@ 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); } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderPresenter.java index e1205dc..3677492 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderPresenter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderPresenter.java @@ -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(); diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailContract.java index 0f842c4..e94109f 100755 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailContract.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailContract.java @@ -1,10 +1,13 @@ 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); } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailPresenter.java index 853821d..79838b0 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailPresenter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailPresenter.java @@ -1,7 +1,17 @@ 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)); + } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ChangeReasonActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ChangeReasonActivity.java new file mode 100755 index 0000000..8e12823 --- /dev/null +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ChangeReasonActivity.java @@ -0,0 +1,29 @@ +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); + } +} diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ManagerActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ManagerActivity.java index 0fb70d0..e71276a 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ManagerActivity.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ManagerActivity.java @@ -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 diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/PreviewActivty.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/PreviewActivty.java new file mode 100755 index 0000000..b901783 --- /dev/null +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/PreviewActivty.java @@ -0,0 +1,78 @@ +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; + } + } +} + diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SendOrderDetailActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SendOrderDetailActivity.java index 89cbc3f..94891da 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SendOrderDetailActivity.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SendOrderDetailActivity.java @@ -1,6 +1,5 @@ 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) { } }); } diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ServiceStationActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ServiceStationActivity.java index d2991ff..5792aee 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ServiceStationActivity.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ServiceStationActivity.java @@ -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; diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SubOrderDetailActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SubOrderDetailActivity.java index c4d306c..785c1da 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SubOrderDetailActivity.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SubOrderDetailActivity.java @@ -1,14 +1,27 @@ 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(); + } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/GrabOrderAdapter.java b/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/GrabOrderAdapter.java index d29d1b8..b29955c 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/GrabOrderAdapter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/GrabOrderAdapter.java @@ -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(); + } } }); } diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/ManagerOrderAdapter.java b/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/ManagerOrderAdapter.java index 6f2bf4c..ca91306 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/ManagerOrderAdapter.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/ManagerOrderAdapter.java @@ -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); + } } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/BargainFragment.java b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/BargainFragment.java index 2034504..c996f75 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/BargainFragment.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/BargainFragment.java @@ -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(); + } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/ChangeOrderFragment.java b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/ChangeOrderFragment.java index 4234748..8c8667e 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/ChangeOrderFragment.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/ChangeOrderFragment.java @@ -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(); } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/GrabFragment.java b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/GrabFragment.java index 3d5772e..188ec25 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/GrabFragment.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/GrabFragment.java @@ -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(); + } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/SubcribeOrderFragment.java b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/SubcribeOrderFragment.java index 678276f..6eb7c66 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/SubcribeOrderFragment.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/SubcribeOrderFragment.java @@ -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(); + } } } diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/view/BargainDialog.java b/managercenter/src/main/java/com/dayu/managercenter/ui/view/BargainDialog.java index c1be26f..b0c983f 100644 --- a/managercenter/src/main/java/com/dayu/managercenter/ui/view/BargainDialog.java +++ b/managercenter/src/main/java/com/dayu/managercenter/ui/view/BargainDialog.java @@ -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); } } diff --git a/managercenter/src/main/release/AndroidManifest.xml b/managercenter/src/main/release/AndroidManifest.xml index 21f10d8..7c747ac 100644 --- a/managercenter/src/main/release/AndroidManifest.xml +++ b/managercenter/src/main/release/AndroidManifest.xml @@ -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> diff --git a/managercenter/src/main/res/layout/activity_change_reason.xml b/managercenter/src/main/res/layout/activity_change_reason.xml new file mode 100644 index 0000000..bd8f3d4 --- /dev/null +++ b/managercenter/src/main/res/layout/activity_change_reason.xml @@ -0,0 +1,62 @@ +<?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 diff --git a/managercenter/src/main/res/layout/activity_pic_preview.xml b/managercenter/src/main/res/layout/activity_pic_preview.xml new file mode 100644 index 0000000..5a60afa --- /dev/null +++ b/managercenter/src/main/res/layout/activity_pic_preview.xml @@ -0,0 +1,35 @@ +<?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 diff --git a/managercenter/src/main/res/layout/activity_send_detail.xml b/managercenter/src/main/res/layout/activity_send_detail.xml index b60ae3b..44fb6f2 100644 --- a/managercenter/src/main/res/layout/activity_send_detail.xml +++ b/managercenter/src/main/res/layout/activity_send_detail.xml @@ -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 diff --git a/managercenter/src/main/res/layout/activity_sub_order_detail.xml b/managercenter/src/main/res/layout/activity_sub_order_detail.xml index 785bdf2..873b549 100644 --- a/managercenter/src/main/res/layout/activity_sub_order_detail.xml +++ b/managercenter/src/main/res/layout/activity_sub_order_detail.xml @@ -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" diff --git a/managercenter/src/main/res/layout/item_service_station.xml b/managercenter/src/main/res/layout/item_service_station.xml index fa39e84..c538495 100644 --- a/managercenter/src/main/res/layout/item_service_station.xml +++ b/managercenter/src/main/res/layout/item_service_station.xml @@ -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> diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/homeorder/HomeOrderPresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/homeorder/HomeOrderPresenter.java index 803e2fb..5acb003 100644 --- a/orderCenter/src/main/java/com/dayu/order/presenter/homeorder/HomeOrderPresenter.java +++ b/orderCenter/src/main/java/com/dayu/order/presenter/homeorder/HomeOrderPresenter.java @@ -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) { diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java index 0e89b0f..f07744d 100644 --- a/orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java +++ b/orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java @@ -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(); } diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/receivingorder/ReceivingPresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/receivingorder/ReceivingPresenter.java index f96155d..15372cc 100644 --- a/orderCenter/src/main/java/com/dayu/order/presenter/receivingorder/ReceivingPresenter.java +++ b/orderCenter/src/main/java/com/dayu/order/presenter/receivingorder/ReceivingPresenter.java @@ -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(); } diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/subcribeTime/SubcribeTimePresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/subcribeTime/SubcribeTimePresenter.java index b96f839..07c9642 100644 --- a/orderCenter/src/main/java/com/dayu/order/presenter/subcribeTime/SubcribeTimePresenter.java +++ b/orderCenter/src/main/java/com/dayu/order/presenter/subcribeTime/SubcribeTimePresenter.java @@ -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; + } } diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/worksRecord/OrderRecordPresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/worksRecord/OrderRecordPresenter.java index 1e2e889..65f0528 100644 --- a/orderCenter/src/main/java/com/dayu/order/presenter/worksRecord/OrderRecordPresenter.java +++ b/orderCenter/src/main/java/com/dayu/order/presenter/worksRecord/OrderRecordPresenter.java @@ -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) { diff --git a/provider/src/main/java/com/dayu/provider/event/RefreshManagerEvent.java b/provider/src/main/java/com/dayu/provider/event/RefreshManagerEvent.java new file mode 100644 index 0000000..8f1c315 --- /dev/null +++ b/provider/src/main/java/com/dayu/provider/event/RefreshManagerEvent.java @@ -0,0 +1,21 @@ +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; + } +} diff --git a/provider/src/main/java/com/dayu/provider/router/RouterPath.java b/provider/src/main/java/com/dayu/provider/router/RouterPath.java index e011474..e9959bf 100644 --- a/provider/src/main/java/com/dayu/provider/router/RouterPath.java +++ b/provider/src/main/java/com/dayu/provider/router/RouterPath.java @@ -29,5 +29,6 @@ public class RouterPath { * 店长模块 */ public final static String PATH_SERVICESTATION="/manager/servicestation"; + public final static String PATH_MANAGER="/manager/manager_home"; } diff --git a/userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java b/userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java index 730595b..98e5492 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java +++ b/userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java @@ -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()); + } } diff --git a/userCenter/src/main/java/com/dayu/usercenter/api/UserService.java b/userCenter/src/main/java/com/dayu/usercenter/api/UserService.java index 3d8b6bd..d03a64c 100755 --- a/userCenter/src/main/java/com/dayu/usercenter/api/UserService.java +++ b/userCenter/src/main/java/com/dayu/usercenter/api/UserService.java @@ -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); } diff --git a/userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java b/userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java index 264b3db..1c15614 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java +++ b/userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java @@ -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}"; } diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginContract.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginContract.java index 295b469..163533c 100755 --- a/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginContract.java +++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginContract.java @@ -25,6 +25,8 @@ public interface PwLoginContract { */ public abstract void login(); + public abstract void getSiteId(UserInfo info); + /** * 跳转到主界面并保存用户信息. */ diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java index 3f01e31..401fb0d 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java +++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java @@ -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) { diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginContract.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginContract.java index af23bd6..30f2e5e 100755 --- a/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginContract.java +++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginContract.java @@ -55,5 +55,12 @@ public interface SmsLoginContract { */ public abstract void loginHx(String hxAccount, String hxPwd); + /** + * 获取siteId. + * + * @param accountId + */ + public abstract void getSiteId(UserInfo info); + } } diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java index 72f7417..0b32ad4 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java +++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java @@ -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) { diff --git a/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomePersonFragment.java b/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomePersonFragment.java index 4cca359..e7f879a 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomePersonFragment.java +++ b/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomePersonFragment.java @@ -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);