diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java
index d40b1222f2..bb65c2efc8 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java
@@ -11,7 +11,8 @@ public class DriverStatusQueryRespBean extends BaseData {
public Result data;
public static class Result {
- public int serviceStatus; //0收车,1出车
+ public int servingStatus; //0收车,1出车
+ public int driverStatus; //0收车,1出车
public String orderNo;
public int purpose; // 1 运营, 2 测试, 3演示
}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java
index d5a3443d60..0591d3f878 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java
@@ -7,12 +7,24 @@ package com.mogo.och.taxi.bean;
public class TaxiLoginReqBean {
public String phone;
- public String code;
+ public String captcha;
public String sn;
+ public Location4Login loc;
- public TaxiLoginReqBean(String phone, String code, String sn) {
+ public TaxiLoginReqBean(String phone, String code, String sn,Location4Login location4Login) {
this.phone = phone;
- this.code = code;
+ this.captcha = code;
this.sn = sn;
+ this.loc = location4Login;
+ }
+
+ public static class Location4Login{
+ double lat;
+ double lon;
+
+ public Location4Login(double lat, double lon) {
+ this.lat = lat;
+ this.lon = lon;
+ }
}
}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java
new file mode 100644
index 0000000000..3a4d4d7a4f
--- /dev/null
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java
@@ -0,0 +1,14 @@
+package com.mogo.och.taxi.bean;
+
+/**
+ * Created by pangfan on 2021/8/19
+ * 司机端准备好或者乘客已验证上车请求参数
+ */
+public class TaxiLoginSmsReqBean {
+
+ public String phone;
+
+ public TaxiLoginSmsReqBean(String phone) {
+ this.phone = phone;
+ }
+}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java
new file mode 100644
index 0000000000..ced9b2eddb
--- /dev/null
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java
@@ -0,0 +1,25 @@
+package com.mogo.och.taxi.bean;
+
+/**
+ * Created by pangfan on 2021/8/19
+ * 司机端准备好或者乘客已验证上车请求参数
+ */
+public class TaxiLogoutReqBean {
+ public String sn;
+ public Location4Login loc;
+
+ public TaxiLogoutReqBean(String sn, Location4Login location4Login) {
+ this.sn = sn;
+ this.loc = location4Login;
+ }
+
+ public static class Location4Login{
+ double lat;
+ double lon;
+
+ public Location4Login(double lat, double lon) {
+ this.lat = lat;
+ this.lon = lon;
+ }
+ }
+}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java
index c320810e88..a8f35171cb 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java
@@ -14,4 +14,5 @@ import java.util.List;
*/
public interface ITaxiLoginCallback {
void getPhoneCodeSuccess();
+ void loginSuccess();
}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt
new file mode 100644
index 0000000000..5e19782f5e
--- /dev/null
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt
@@ -0,0 +1,27 @@
+package com.mogo.och.taxi.constant
+
+/**
+ * Created on 2022/08/19
+ *
+ *
+ * 0 初始状态,
+ * 10 已登录,
+ * 20 已登出,
+ */
+enum class TaxiLoginStatusEnum(val code: Int) {
+ None( 0 ),
+ Login( 10),
+ Logout( 20),;
+
+ companion object {
+ @JvmStatic
+ fun valueOf(code: Int): TaxiLoginStatusEnum? {
+ for (value in values()) {
+ if (value.code == code) {
+ return value
+ }
+ }
+ return None
+ }
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiOpenOrderStatusEnum.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiOpenOrderStatusEnum.kt
new file mode 100644
index 0000000000..b583f28d3c
--- /dev/null
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiOpenOrderStatusEnum.kt
@@ -0,0 +1,27 @@
+package com.mogo.och.taxi.constant
+
+/**
+ * Created on 2022/08/19
+ *
+ *
+ * 0 初始状态,
+ * 10 接单状态 可接单,
+ * 20 暂停接到哪 不可接单,
+ */
+enum class TaxiOpenOrderStatusEnum(val code: Int) {
+ None( 0 ),
+ Ordering( 10),
+ UnOrdering( 20),;
+
+ companion object {
+ @JvmStatic
+ fun valueOf(code: Int): TaxiOpenOrderStatusEnum? {
+ for (value in values()) {
+ if (value.code == code) {
+ return value
+ }
+ }
+ return None
+ }
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.java
deleted file mode 100644
index 3ee26ebd52..0000000000
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.java
+++ /dev/null
@@ -1,202 +0,0 @@
-package com.mogo.och.taxi.model;
-
-import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT;
-import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS;
-import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT;
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
-
-import android.content.Context;
-import android.content.Intent;
-import android.location.Location;
-import android.net.ConnectivityManager;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-
-import com.amap.api.maps.model.LatLng;
-import com.elegant.network.utils.GsonUtil;
-import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
-import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
-import com.mogo.cloud.commons.utils.CoordinateUtils;
-import com.mogo.commons.debug.DebugConfig;
-import com.mogo.eagle.core.data.BaseData;
-import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
-import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo;
-import com.mogo.eagle.core.data.config.FunctionBuildConfig;
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener;
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
-import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
-import com.mogo.eagle.core.utilcode.util.NetworkUtils;
-import com.mogo.eagle.core.utilcode.util.ToastUtils;
-import com.mogo.map.navi.IMogoCarLocationChangedListener2;
-import com.mogo.module.common.MogoApisHandler;
-import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
-import com.mogo.och.common.module.utils.PinYinUtil;
-import com.mogo.och.taxi.R;
-import com.mogo.och.taxi.bean.DriverServiceDataRespBean;
-import com.mogo.och.taxi.bean.DriverStatusQueryRespBean;
-import com.mogo.och.taxi.bean.OrderGrabRespBean;
-import com.mogo.och.taxi.bean.OrderGrabStatusQueryRespBean;
-import com.mogo.och.taxi.bean.OrderQueryRespBean;
-import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean;
-import com.mogo.och.taxi.bean.OrderRouteUpdateReqBean;
-import com.mogo.och.taxi.bean.OrdersInServiceQueryRespBean;
-import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
-import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
-import com.mogo.och.taxi.bean.QueryOrderRouteResp;
-import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
-import com.mogo.och.taxi.bean.TaxiLoginRespBean;
-import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
-import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
-import com.mogo.och.taxi.callback.ITaxiCarStatusCallback;
-import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
-import com.mogo.och.taxi.callback.ITaxiLoginCallback;
-import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
-import com.mogo.och.taxi.constant.TaxiConst;
-import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
-import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
-import com.mogo.och.taxi.constant.TaxiOrderTypeEnum;
-import com.mogo.och.taxi.network.TaxiServiceCallback;
-import com.mogo.och.taxi.network.TaxiServiceManager;
-import com.mogo.och.taxi.utils.OrderUtil;
-import com.mogo.och.taxi.utils.TaxiAnalyticsManager;
-import com.mogo.och.taxi.utils.TaxiTrajectoryManager;
-import com.mogo.service.intent.IMogoIntentListener;
-import com.mogo.service.statusmanager.IMogoStatusChangedListener;
-import com.mogo.service.statusmanager.StatusDescriptor;
-import com.zhjt.service.chain.ChainLog;
-import com.zhjt.service.chain.TracingConstants;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import io.reactivex.exceptions.UndeliverableException;
-import io.reactivex.functions.Consumer;
-import io.reactivex.plugins.RxJavaPlugins;
-import mogo.telematics.pad.MessagePad;
-import mogo_msg.MogoReportMsg;
-import system_master.SystemStatusInfo;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 网约车 - 出租车业务逻辑处理
- */
-public class TaxiLoginModel {
-
- private static final String TAG = TaxiLoginModel.class.getSimpleName();
-
- private static final class SingletonHolder {
- private static final TaxiLoginModel INSTANCE = new TaxiLoginModel();
- }
-
- public static TaxiLoginModel getInstance() {
- return SingletonHolder.INSTANCE;
- }
-
- private Context mContext;
-
- ITaxiLoginCallback iTaxiLoginCallback;
-
-
- private TaxiLoginModel() {
- }
-
- public void init(Context context) {
- mContext = context.getApplicationContext();
- }
-
- public ITaxiLoginCallback getiTaxiLoginCallback() {
- return iTaxiLoginCallback;
- }
-
- public void setiTaxiLoginCallback(ITaxiLoginCallback iTaxiLoginCallback) {
- this.iTaxiLoginCallback = iTaxiLoginCallback;
- }
-
- public void release() {
- this.iTaxiLoginCallback = null;
- }
-
- /**
- * 获取手机验证码
- */
- public void getPhoneCode(String phone) {
- TaxiServiceManager.getInstance().getPhoneCode(mContext,phone,
- new TaxiServiceCallback() {
- @Override
- public void onSuccess(BaseData data) {
- if (null != data && 0 == data.code) {
- // 获取验证码成功
- ToastUtils.showShort(mContext.getString(R.string.module_och_taxi_login_get_code_success));
- if(iTaxiLoginCallback!=null){
- iTaxiLoginCallback.getPhoneCodeSuccess();
- }
- }else {
- if(data!=null) {
- ToastUtils.showShort(data.code);
- }
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtils.showShort(code + "," + msg);
- }
- });
- }
-
- public void gotoLogin(@NotNull String phone, @NotNull String code) {
- TaxiServiceManager.getInstance().gotoLoginBycode(mContext,phone,code,
- new TaxiServiceCallback() {
- @Override
- public void onSuccess(TaxiLoginRespBean data) {
- if (null != data && 0 == data.code) {
- // 获取验证码成功
- ToastUtils.showShort(mContext.getString(R.string.module_och_taxi_login_get_code_success));
- if(iTaxiLoginCallback!=null){
- iTaxiLoginCallback.getPhoneCodeSuccess();
- }
- }else {
- if(data!=null) {
- ToastUtils.showShort(data.code);
- }
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtils.showShort(code + "," + msg);
- }
- });
- }
-
-}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt
new file mode 100644
index 0000000000..2f830b5383
--- /dev/null
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt
@@ -0,0 +1,128 @@
+package com.mogo.och.taxi.model
+
+import android.annotation.SuppressLint
+import android.content.Context
+import com.mogo.eagle.core.data.BaseData
+import com.mogo.eagle.core.utilcode.util.NetworkUtils
+import com.mogo.och.taxi.model.TaxiLoginModel
+import com.mogo.och.taxi.callback.ITaxiLoginCallback
+import com.mogo.module.common.MogoApisHandler
+import com.mogo.map.navi.IMogoCarLocationChangedListener2
+import com.mogo.och.taxi.network.TaxiServiceManager
+import com.mogo.och.taxi.network.TaxiServiceCallback
+import com.mogo.eagle.core.utilcode.util.ToastUtils
+import com.mogo.och.taxi.R
+import com.mogo.och.taxi.bean.TaxiLoginReqBean
+import com.mogo.och.taxi.bean.TaxiLoginRespBean
+import com.mogo.och.taxi.constant.TaxiLoginStatusEnum
+import com.mogo.och.taxi.utils.StatusManager
+
+/**
+ * Created by pangfan on 2021/8/19
+ *
+ *
+ * 网约车 - 出租车业务逻辑处理
+ */
+@SuppressLint("StaticFieldLeak")
+object TaxiLoginModel{
+
+ private val TAG = "TaxiLoginModel"
+ private var mContext: Context? = null
+ var iTaxiLoginCallback: ITaxiLoginCallback? = null
+ private var mLongitude = 0.0
+ private var mLatitude = 0.0
+ fun init(context: Context) {
+ mContext = context.applicationContext
+ // 达到起始站围栏监听
+ MogoApisHandler.getInstance()
+ .apis
+ .registerCenterApi
+ .registerCarLocationChangedListener(TAG, mCarLocationChangedListener2)
+ }
+
+ // 自车定位
+ private val mCarLocationChangedListener2 = IMogoCarLocationChangedListener2 { location ->
+ mLongitude = location.longitude
+ mLatitude = location.latitude
+ }
+
+ fun getiTaxiLoginCallback(): ITaxiLoginCallback? {
+ return iTaxiLoginCallback
+ }
+
+ fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) {
+ this.iTaxiLoginCallback = iTaxiLoginCallback
+ }
+
+ fun release() {
+ mContext = null
+ iTaxiLoginCallback = null
+ // 注销到达起始站围栏监听
+ MogoApisHandler.getInstance().apis.registerCenterApi
+ .unregisterCarLocationChangedListener(TAG, mCarLocationChangedListener2)
+ }
+
+ /**
+ * 获取手机验证码
+ */
+ fun getPhoneCode(phone: String?) {
+ TaxiServiceManager.getInstance().getPhoneCode(mContext, phone,
+ object : TaxiServiceCallback {
+ override fun onSuccess(data: BaseData?) {
+ if (null != data && 0 == data.code) {
+ // 获取验证码成功
+ ToastUtils.showShort(mContext!!.getString(R.string.module_och_taxi_login_get_code_success))
+ iTaxiLoginCallback?.getPhoneCodeSuccess()
+ } else {
+ if (data != null) {
+ ToastUtils.showShort(data.code)
+ }
+ }
+ }
+
+ override fun onError() {
+ if (!NetworkUtils.isConnected(mContext)) {
+ ToastUtils.showShort(mContext!!.getString(R.string.network_error_tip))
+ } else {
+ ToastUtils.showShort(mContext!!.getString(R.string.request_error_tip))
+ }
+ }
+
+ override fun onFail(code: Int, msg: String) {
+ ToastUtils.showShort("$code,$msg")
+ }
+ })
+ }
+
+ fun gotoLogin(phone: String, code: String) {
+ val location4Login = TaxiLoginReqBean.Location4Login(mLatitude, mLongitude)
+ TaxiServiceManager.getInstance().gotoLoginBycode(mContext, phone, code, location4Login,
+ object : TaxiServiceCallback {
+ override fun onSuccess(data: TaxiLoginRespBean?) {
+ if (null != data && 0 == data.code) {
+ // 获取验证码成功
+ ToastUtils.showShort(mContext!!.getString(R.string.module_och_taxi_login_login_success))
+ StatusManager.setLoginStatus(TaxiLoginStatusEnum.Login)
+ iTaxiLoginCallback?.loginSuccess()
+ } else {
+ if (data != null) {
+ ToastUtils.showShort(data.code)
+ }
+ }
+ }
+
+ override fun onError() {
+ if (!NetworkUtils.isConnected(mContext)) {
+ ToastUtils.showShort(mContext!!.getString(R.string.network_error_tip))
+ } else {
+ ToastUtils.showShort(mContext!!.getString(R.string.request_error_tip))
+ }
+ }
+
+ override fun onFail(code: Int, msg: String) {
+ ToastUtils.showShort("$code,$msg")
+ }
+ })
+ }
+
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java
index 5a857daf4c..974d442619 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java
@@ -49,6 +49,7 @@ import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
+import com.mogo.och.taxi.bean.TaxiLogoutReqBean;
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
import com.mogo.och.taxi.callback.ITaxiCarStatusCallback;
@@ -56,10 +57,12 @@ import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
import com.mogo.och.taxi.constant.TaxiConst;
+import com.mogo.och.taxi.constant.TaxiLoginStatusEnum;
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
import com.mogo.och.taxi.constant.TaxiOrderTypeEnum;
import com.mogo.och.taxi.network.TaxiServiceCallback;
import com.mogo.och.taxi.network.TaxiServiceManager;
+import com.mogo.och.taxi.utils.StatusManager;
import com.mogo.och.taxi.utils.TaxiAnalyticsManager;
import com.mogo.och.taxi.utils.OrderUtil;
import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
@@ -103,7 +106,6 @@ public class TaxiModel {
private Context mContext;
private volatile int mPrevAPStatus = -1; //前一次自动驾驶状态值
- private volatile int mOCHCarStatus = -1; //出车/收车状态:1 出车;0 收车
private volatile String mPrevOrderNo = ""; //前一次的新到单id(当次和前一次orderId相同时,本次不再弹出)
private volatile OrderQueryRespBean.Result mNewBookingOrder; //新到待抢预约单
private volatile OrderQueryRespBean.Result mCurrentOCHOrder; //当前订单
@@ -255,17 +257,26 @@ public class TaxiModel {
}
}
- //查询出车/收车状态
+ /**
+ * 查询出车/收车状态
+ * 1、初始化查下状态
+ * 2、点击更新接单状态 如果是初始化状态就查下状态
+ * 3、点击更新接单状态后 查询状态
+ * 4、网络状态波动时 查询状态
+ * 5、登出后更新状态
+ */
public void queryCarStatus() {
TaxiServiceManager.getInstance().queryDriverServiceStatus(mContext,
new TaxiServiceCallback() {
@Override
public void onSuccess(DriverStatusQueryRespBean data) {
if (null != data && 0 == data.code) {
- mOCHCarStatus = data.data.serviceStatus == 1 ? 1 : 0;
+ StatusManager.setLoginStatus(data.data.driverStatus);
+ StatusManager.setOpenOrderStatus(data.data.servingStatus);
//更新view
- CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + mOCHCarStatus);
- startOrStopOrderLoop(mOCHCarStatus == 1);
+ CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + StatusManager.getLoginStatus());
+ startOrStopOrderLoop(StatusManager.isLogin());
+ mCarStatusCallback.onCarLoginStatusChange(StatusManager.isLogin());
String role = "";
if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) {
role = TaxiConst.DEMO_USER;
@@ -273,7 +284,7 @@ public class TaxiModel {
role = TaxiConst.TEST_USER;
}
if (mCarStatusCallback != null) {
- mCarStatusCallback.onCarStatusChanged(mOCHCarStatus == 1, role);
+ mCarStatusCallback.onCarStatusChanged(StatusManager.isOpeningOrderStatus(), role);
}
}
@@ -299,17 +310,16 @@ public class TaxiModel {
//更新出车收车状态
public void updateCarStatus() {
- if (mOCHCarStatus == -1) {
+ if (StatusManager.getLoginStatus().equals(TaxiLoginStatusEnum.None)) {
queryCarStatus();
return;
}
- final int status = mOCHCarStatus == 1 ? 0 : 1;
- TaxiServiceManager.getInstance().updateDriverServiceStatus(mContext, status,
+ TaxiServiceManager.getInstance().changeOrderServing(mContext,StatusManager.isOpeningOrderStatus(),
new TaxiServiceCallback() {
@Override
public void onSuccess(BaseData data) {
if (null != data && 0 == data.code) {
- mOCHCarStatus = status;
+ //StatusManager.changeOrderStatus();
queryCarStatus();
}
}
@@ -328,6 +338,7 @@ public class TaxiModel {
ToastUtils.showShort(code + "," + msg);
}
});
+
}
/**
@@ -972,7 +983,7 @@ public class TaxiModel {
CallerLogger.INSTANCE.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr);
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) {
if (NetworkUtils.isConnected(mContext)) {
- startOrStopOrderLoop(mOCHCarStatus == 1);
+ startOrStopOrderLoop(StatusManager.isLogin());
queryCarStatus();
}
}
@@ -1543,19 +1554,22 @@ public class TaxiModel {
}
}
- // 取消待服务中订单
+ // 登出
public void logout() {
- TaxiServiceManager.getInstance().logout(mContext,
+ TaxiLogoutReqBean.Location4Login location4Login = new TaxiLogoutReqBean.Location4Login(mLatitude, mLongitude);
+ TaxiServiceManager.getInstance().logout(mContext,location4Login,
new TaxiServiceCallback() {
@Override
public void onSuccess(BaseData data) {
if (null != data && 0 == data.code) {
mCarStatusCallback.onCarLoginStatusChange(false);
+ queryCarStatus();
}
}
@Override
public void onError() {
+ mCarStatusCallback.onCarLoginStatusChange(false);
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
} else {
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java
index 156193ca60..fc156d38d2 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java
@@ -22,6 +22,8 @@ import com.mogo.och.taxi.bean.QueryOrderRouteResp;
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
import com.mogo.och.taxi.bean.TaxiLoginReqBean;
import com.mogo.och.taxi.bean.TaxiLoginRespBean;
+import com.mogo.och.taxi.bean.TaxiLoginSmsReqBean;
+import com.mogo.och.taxi.bean.TaxiLogoutReqBean;
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
@@ -313,14 +315,14 @@ interface TaxiServiceApiNew {
/**
* 获取手机验证码
- * @param sn
+ *
* @return
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
- @GET( "/autopilot-car-hailing/car/v2/driver/taxi/serviceStatus/query" )
+ @POST( "/autopilot-car-hailing/driver/v2/driver/taxi/sendSms" )
Observable getPhoneCode(@Header ("appId") String appId
- ,@Header("ticket") String ticket,@Query("sn") String sn,@Query("phone") String phone);
+ ,@Header("ticket") String ticket,@Body TaxiLoginSmsReqBean data);
/**
* 通过验证码登录
* @param appId
@@ -329,15 +331,45 @@ interface TaxiServiceApiNew {
* @return
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
- @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/orderCompleted" )
+ @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/startOperation" )
Observable gotoLoginBycode(@Header ("appId") String appId
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
/**
* 登出接口
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
- @GET("/autopilot-car-hailing/car/v2/driver/taxi/serviceStatus/query")
+ @POST("/autopilot-car-hailing/cab/flow/v1/driver/taxi/endOperation")
Observable logout(@Header ("appId") String appId,@Header("ticket") String ticket,
- @Query("sn") String sn);
+ @Body TaxiLogoutReqBean data);
+ /**
+ * 暂停接单
+ * @param data
+ * @return
+ */
+ @Headers( {"Content-type:application/json;charset=UTF-8"} )
+// @POST( "/autopilot-car-hailing/api/v1/driver/serviceStatus/update" )
+ @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/stopOrderServing" )
+ Observable stopOrderServing(@Header ("appId") String appId,@Header("ticket") String ticket
+ ,@Body DriverStatusUpdateReqBean data);
+ /**
+ * 暂停接单
+ * @param data
+ * @return
+ */
+ @Headers( {"Content-type:application/json;charset=UTF-8"} )
+// @POST( "/autopilot-car-hailing/api/v1/driver/serviceStatus/update" )
+ @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/resetOrderServing" )
+ Observable resetOrderServing(@Header ("appId") String appId,@Header("ticket") String ticket
+ ,@Body DriverStatusUpdateReqBean data);
+ /**
+ * 收车/出车状态和登录状态查询
+ * @param sn
+ * @return
+ */
+ @Headers( {"Content-type:application/json;charset=UTF-8"} )
+// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
+ @GET( "/autopilot-car-hailing/operation/v1/driver/taxi/loginStatus" )
+ Observable queryDriverServiceStatusAndLoginStatus(@Header ("appId") String appId
+ ,@Header("ticket") String ticket,@Query("sn") String sn);
}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java
index b69e9fe0e2..4e2750299a 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java
@@ -32,12 +32,15 @@ import com.mogo.och.taxi.bean.QueryOrderRouteResp;
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
import com.mogo.och.taxi.bean.TaxiLoginReqBean;
import com.mogo.och.taxi.bean.TaxiLoginRespBean;
+import com.mogo.och.taxi.bean.TaxiLoginSmsReqBean;
+import com.mogo.och.taxi.bean.TaxiLogoutReqBean;
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
import com.mogo.och.taxi.constant.TaxiConst;
import java.util.List;
+import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
@@ -234,19 +237,43 @@ public class TaxiServiceManager {
.subscribe(getSubscribeImpl(context, callback, "updateOrderStatus"));
}
+// /**
+// * 收车/出车状态更新
+// * @param context
+// * @param status
+// * @param callback
+// */
+// public void updateDriverServiceStatus(Context context, int status,
+// TaxiServiceCallback callback) {
+// mOCHTaxiServiceApi.updateDriverServiceStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
+// ,MoGoAiCloudClientConfig.getInstance().getToken()
+// ,new DriverStatusUpdateReqBean(
+// MoGoAiCloudClientConfig.getInstance().getSn(), status))
+// .subscribeOn(Schedulers.io())
+// .observeOn(AndroidSchedulers.mainThread())
+// .subscribe(getSubscribeImpl(context, callback, "updateDriverServiceStatus"));
+// }
+
/**
- * 收车/出车状态更新
+ * 暂停接单
* @param context
- * @param status
* @param callback
*/
- public void updateDriverServiceStatus(Context context, int status,
- TaxiServiceCallback callback) {
- mOCHTaxiServiceApi.updateDriverServiceStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
- ,MoGoAiCloudClientConfig.getInstance().getToken()
- ,new DriverStatusUpdateReqBean(
- MoGoAiCloudClientConfig.getInstance().getSn(), status))
- .subscribeOn(Schedulers.io())
+ public void changeOrderServing(Context context,boolean isOrdering,
+ TaxiServiceCallback callback) {
+ Observable baseDataObservable = null;
+ if(isOrdering) {// 正在接单去暂停
+ baseDataObservable = mOCHTaxiServiceApi.stopOrderServing(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
+ , MoGoAiCloudClientConfig.getInstance().getToken()
+ , new DriverStatusUpdateReqBean(
+ MoGoAiCloudClientConfig.getInstance().getSn(), 0));
+ }else {// 没有接单去接单
+ baseDataObservable = mOCHTaxiServiceApi.resetOrderServing(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
+ , MoGoAiCloudClientConfig.getInstance().getToken()
+ , new DriverStatusUpdateReqBean(
+ MoGoAiCloudClientConfig.getInstance().getSn(), 0));
+ }
+ baseDataObservable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getSubscribeImpl(context, callback, "updateDriverServiceStatus"));
}
@@ -258,7 +285,7 @@ public class TaxiServiceManager {
*/
public void queryDriverServiceStatus(Context context,
TaxiServiceCallback callback) {
- mOCHTaxiServiceApi.queryDriverServiceStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
+ mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
,MoGoAiCloudClientConfig.getInstance().getToken()
,MoGoAiCloudClientConfig.getInstance().getSn())
.subscribeOn(Schedulers.io())
@@ -447,8 +474,7 @@ public class TaxiServiceManager {
TaxiServiceCallback callback) {
mOCHTaxiServiceApi.getPhoneCode(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
, MoGoAiCloudClientConfig.getInstance().getToken()
- , MoGoAiCloudClientConfig.getInstance().getSn()
- , phone)
+ , new TaxiLoginSmsReqBean(phone))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getSubscribeImpl(context, callback, "getPhoneCode"));
@@ -458,12 +484,13 @@ public class TaxiServiceManager {
* @param context
* @param callback
*/
- public void gotoLoginBycode(Context context,String phone,String code,
- TaxiServiceCallback callback) {
+ public void gotoLoginBycode(Context context, String phone, String code,
+ TaxiLoginReqBean.Location4Login location4Login,
+ TaxiServiceCallback callback) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
mOCHTaxiServiceApi.gotoLoginBycode(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
, MoGoAiCloudClientConfig.getInstance().getToken()
- , new TaxiLoginReqBean(phone,code,sn))
+ , new TaxiLoginReqBean(phone, code, sn, location4Login))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getSubscribeImpl(context, callback, "gotoLoginBycode"));
@@ -472,11 +499,11 @@ public class TaxiServiceManager {
/**
* 登出
*/
- public void logout(Context context, TaxiServiceCallback callback) {
+ public void logout(Context context, TaxiLogoutReqBean.Location4Login location4Login, TaxiServiceCallback callback) {
mOCHTaxiServiceApi.logout(
MoGoAiCloudClientConfig.getInstance().getServiceAppId(),
MoGoAiCloudClientConfig.getInstance().getToken(),
- MoGoAiCloudClientConfig.getInstance().getSn())
+ new TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().getSn(), location4Login))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getSubscribeImpl(context, callback, "logout"));
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt
index a8ede59a35..a44dc70275 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt
@@ -29,12 +29,12 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
private var countDownDisposable: Disposable? = null
init {
- TaxiLoginModel.getInstance().init(AbsMogoApplication.getApp())
+ TaxiLoginModel.init(AbsMogoApplication.getApp())
initListeners()
}
private fun initListeners() {
- TaxiLoginModel.getInstance().setiTaxiLoginCallback(this)
+ TaxiLoginModel.setiTaxiLoginCallback(this)
}
fun getPhoneCode(phone:String){
@@ -43,7 +43,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
mView?.inputPhoneError()
return
}
- TaxiLoginModel.getInstance().getPhoneCode(phone)
+ TaxiLoginModel.getPhoneCode(phone)
}
override fun onCreate(owner: LifecycleOwner) {
@@ -55,7 +55,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
- TaxiLoginModel.getInstance().release()
+ TaxiLoginModel.release()
countDownDisposable?.let {
if (!it.isDisposed) {
it.dispose()
@@ -86,6 +86,10 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
})
}
+ override fun loginSuccess() {
+ mView?.loginSuccess()
+ }
+
fun gotoLogin(phone: String, code: String) {
if (!RegexUtils.isMobileExact(phone)) {
ToastUtils.showShort(R.string.module_och_taxi_login_phone_error)
@@ -93,6 +97,6 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
return
}
mView?.closeSoftInput()
- TaxiLoginModel.getInstance().gotoLogin(phone,code)
+ TaxiLoginModel.gotoLogin(phone,code)
}
}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
index dd8ed6cf4e..bd9442055a 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
@@ -204,7 +204,11 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS
@Override
public void onCarLoginStatusChange(boolean isLogin) {
- mView.showLoginDialogFragment();
+ if(isLogin){
+ mView.hideLoginDialogFragment();
+ }else {
+ mView.showLoginDialogFragment();
+ }
}
@Override
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java
index dc189db017..6e001b7d91 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java
@@ -392,15 +392,32 @@ public class TaxiFragment extends BaseTaxiTabFragment(TaxiLoginDialogFragment.newInstance());
- taxiLoginDialogFragment.get().show(getParentFragmentManager(),taxiLoginDialogFragment.get().getTag());
+ if(taxiLoginDialogFragment==null||taxiLoginDialogFragment.get()==null) {
+ taxiLoginDialogFragment = new WeakReference<>(TaxiLoginDialogFragment.newInstance());
+ }
+ TaxiLoginDialogFragment taxiLoginDialog = taxiLoginDialogFragment.get();
+ if(taxiLoginDialog!=null) {
+ if (taxiLoginDialog.getDialog() != null && taxiLoginDialog.getDialog().isShowing()) {
+ return;
+ }
+ if (taxiLoginDialog.isAdded()) {//解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。
+ getParentFragmentManager().beginTransaction().remove(taxiLoginDialog).commit();
+ }
+ taxiLoginDialog.show(getParentFragmentManager(), taxiLoginDialog.getTag());
+ }
+ }
+ public void hideLoginDialogFragment(){
+ CallerLogger.INSTANCE.d(M_TAXI + TAG,"hideLoginDialogFragment 隐藏登录界面");
+ if(taxiLoginDialogFragment!=null&&taxiLoginDialogFragment.get()!=null){
+ taxiLoginDialogFragment.get().dismissAllowingStateLoss();
+ }
}
private void testRouteInfoUpload() {
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt
index 421eede884..c71d37594e 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt
@@ -11,6 +11,7 @@ import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener
import com.mogo.commons.mvp.MvpDialogFragment
+import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.BarUtils
@@ -88,7 +89,7 @@ class TaxiLoginDialogFragment : MvpDialogFragment {
+ this.loginStatus = TaxiLoginStatusEnum.Logout
+ }
+ 1 -> {
+ this.loginStatus = TaxiLoginStatusEnum.Login
+ }
+ else -> {
+ this.loginStatus = TaxiLoginStatusEnum.None
+ }
+ }
+ }
+ @JvmStatic
+ fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) {
+ this.loginStatus = loginStatus
+ }
+ @JvmStatic
+ fun getLoginStatus(): TaxiLoginStatusEnum {
+ return loginStatus
+ }
+ @JvmStatic
+ fun isLogin():Boolean {
+ if(loginStatus==TaxiLoginStatusEnum.Login){
+ return true
+ }
+ return false
+ }
+ // region 是否可用接单
+ @JvmStatic
+ fun isOpeningOrderStatus():Boolean{
+ if(openOrderStatus==TaxiOpenOrderStatusEnum.Ordering){
+ return true
+ }
+ return false
+ }
+ @JvmStatic
+ fun setOpenOrderStatus(status: Int) {
+ when (status) {
+ 0 -> {
+ this.openOrderStatus = TaxiOpenOrderStatusEnum.UnOrdering
+ }
+ 1 -> {
+ this.openOrderStatus = TaxiOpenOrderStatusEnum.Ordering
+ }
+ else -> {
+ this.openOrderStatus = TaxiOpenOrderStatusEnum.None
+ }
+ }
+ }
+ @JvmStatic
+ fun getOpenOrderStatus(): TaxiOpenOrderStatusEnum {
+ return openOrderStatus
+ }
+
+ //endregion
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/res/values/strings.xml b/OCH/mogo-och-taxi/src/main/res/values/strings.xml
index 5cd6eac3f7..7defd4e933 100644
--- a/OCH/mogo-och-taxi/src/main/res/values/strings.xml
+++ b/OCH/mogo-och-taxi/src/main/res/values/strings.xml
@@ -35,6 +35,7 @@
获取验证码
请输入验证码
获取验证码成功
+ 登录成功
请输入正确的手机号
请输入手机号
请输入手机号