From 48b8b8c2a9f97893648360f1a44fb18ae1bf88f5 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Mon, 30 May 2022 16:01:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[taxi/bus-d=20270]=20taxi=20=E5=8F=B8?= =?UTF-8?q?=E6=9C=BA=E7=AB=AF=E5=A2=9E=E5=8A=A0"=E8=B7=B3=E8=BF=87?= =?UTF-8?q?=E4=B9=98=E5=AE=A2=E9=AA=8C=E8=AF=81"=20=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/taxi/bean/OrderQueryRespBean.java | 5 +- .../taxi/bean/TaxiCheckPhoneBaseRespBean.java | 12 ++++ .../TaxiCheckPhoneUpdateOrderReqBean.java | 17 +++++ .../com/mogo/och/taxi/model/TaxiModel.java | 34 ++++++++-- .../och/taxi/network/TaxiServiceApiNew.java | 64 ++++++++++++++----- .../och/taxi/network/TaxiServiceManager.java | 14 ++++ .../com/mogo/och/taxi/ui/TaxiFragment.java | 3 + .../src/main/res/layout/taxi_panel.xml | 7 ++ 8 files changed, 132 insertions(+), 24 deletions(-) create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneBaseRespBean.java create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneUpdateOrderReqBean.java diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java index 2e0a7e5372..2d1d588b4d 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java @@ -45,7 +45,10 @@ public class OrderQueryRespBean extends BaseData { public long startTime; //预计用车时间:预约单=下单时的预约用车时间;即时单=派单成功的时间+预估的达到上车点的时间 public long bookingTime; - + //乘客手机号 + public String passengerPhone; + //订单多少乘客 + public String passengerNum; // !!!接口中暂无此字段,仅用于本地实现逻辑使用:起始站目的站距离km diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneBaseRespBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneBaseRespBean.java new file mode 100644 index 0000000000..4a4c0da7b1 --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneBaseRespBean.java @@ -0,0 +1,12 @@ +package com.mogo.och.taxi.bean; + +import com.mogo.eagle.core.data.BaseData; + +/** + * Created by pangfan on 2021/8/19 + * + * 查询订单返回数据结构 + */ +public class TaxiCheckPhoneBaseRespBean extends BaseData { + public Object data; +} diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneUpdateOrderReqBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneUpdateOrderReqBean.java new file mode 100644 index 0000000000..91045acfc2 --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiCheckPhoneUpdateOrderReqBean.java @@ -0,0 +1,17 @@ +package com.mogo.och.taxi.bean; + +/** + * Created by pangfan on 2021/8/19 + * + * 验证手机号后四位同时流转订单状态 + */ +public class TaxiCheckPhoneUpdateOrderReqBean { + + public String orderNo; + public String phone; + + public TaxiCheckPhoneUpdateOrderReqBean(String orderNo, String phone) { + this.orderNo = orderNo; + this.phone = phone; + } +} 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 7d388dca9b..f3dd2c3263 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 @@ -17,6 +17,7 @@ import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; import com.mogo.cloud.commons.utils.CoordinateUtils; +import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.BaseData; import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; @@ -47,6 +48,7 @@ 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.TaxiCheckPhoneBaseRespBean; import com.mogo.och.taxi.callback.ITaxiADASStatusCallback; import com.mogo.och.taxi.callback.ITaxiCarStatusCallback; import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback; @@ -73,9 +75,11 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.exceptions.UndeliverableException; import io.reactivex.functions.Consumer; import io.reactivex.plugins.RxJavaPlugins; +import io.reactivex.schedulers.Schedulers; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; @@ -187,12 +191,6 @@ public class TaxiModel { } } - public void startOrStopOrderLoop() { - if (NetworkUtils.isConnected(mContext)) { - startOrStopOrderLoop(mOCHCarStatus == 1); - } - } - public void release() { startOrStopOrderLoop(false); startOrStopCalculateRouteInfo(false); @@ -1297,5 +1295,29 @@ public class TaxiModel { }); } + /** + * 调试使用,没有乘客屏时可使用此按钮跳过乘客验证 + */ + public void debugPassengerCheckDone() { + if (mCurrentOCHOrder == null + || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.ArriveAtStart.getCode() + || mCurrentOCHOrder.passengerPhone == null || mCurrentOCHOrder.passengerPhone.length() < 5) { + TipToast.shortTip("订单状态不匹配该操作或者手机号有误!"); + return; + } + TaxiServiceManager.getInstance().checkPhoneAndUpdateOrderStatus(mContext + , mCurrentOCHOrder.orderNo, mCurrentOCHOrder.passengerPhone.substring(mCurrentOCHOrder.passengerPhone.length() -4) + , new TaxiServiceCallback() { + @Override + public void onSuccess(TaxiCheckPhoneBaseRespBean data) { + + } + + @Override + public void onFail(int code, String msg) { + + } + }); + } } 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 b504478a2e..e57b349243 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 @@ -19,6 +19,8 @@ import com.mogo.och.taxi.bean.OrdersListQueryReqBean; 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.TaxiCheckPhoneBaseRespBean; +import com.mogo.och.taxi.bean.TaxiCheckPhoneUpdateOrderReqBean; import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean; import io.reactivex.Observable; @@ -44,7 +46,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @GET("/autopilot-car-hailing/api/v1/driver/orderInService/query") @GET("/autopilot-car-hailing/order/v2/driver/taxi/orderInService/query") - Observable queryOrdersInAndWaitService(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn); + Observable queryOrdersInAndWaitService(@Header("appId") String appId + , @Header("ticket") String ticket, @Query("sn") String sn); /** * 查询新到的预约单 @@ -54,7 +57,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @GET( "/autopilot-car-hailing/api/v1/driver/newBookingOrder/query" ) @GET( "/autopilot-car-hailing/order/v2/driver/taxi/newBookingOrder/query" ) - Observable queryNewBookingOrder(@Header ("appId") String appId,@Header("ticket") String ticket,@Query("sn") String sn); + Observable queryNewBookingOrder(@Header ("appId") String appId + ,@Header("ticket") String ticket,@Query("sn") String sn); /** * (预约单)执行抢单动作 @@ -64,7 +68,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @POST( "/autopilot-car-hailing/api/v1/driver/grabOrder" ) @POST( "/autopilot-car-hailing/order/v2/driver/taxi/grabOrder" ) - Observable grabOrder(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderGrabReqBean data); + Observable grabOrder(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Body OrderGrabReqBean data); /** * (预约单)查询抢单结果 @@ -74,7 +79,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @POST( "/autopilot-car-hailing/api/v1/driver/grabStatus/query" ) @POST( "/autopilot-car-hailing/order/v2/driver/taxi/grabStatus/query" ) - Observable queryOrderGrabStatus(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderGrabReqBean data); + Observable queryOrderGrabStatus(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Body OrderGrabReqBean data); /** * 查询订单路径规划信息(到上车点、起始点间的距离和预估时间) @@ -84,7 +90,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @POST( "/autopilot-car-hailing/api/v1/driver/routeInfo/query" ) @POST( "/autopilot-car-hailing/order/v2/driver/taxi/routeInfo/query" ) - Observable queryOrderRouteInfo(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderQueryRouteInfoReqBean data); + Observable queryOrderRouteInfo(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Body OrderQueryRouteInfoReqBean data); /** * 通过orderId查询订单信息(用于本地已经有orderId时) @@ -95,7 +102,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @POST( "/autopilot-car-hailing/api/v1/driver/queryOrderById" ) @POST( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrderById" ) - Observable queryOrderById(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderQueryReqBean data); + Observable queryOrderById(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Body OrderQueryReqBean data); /** * 查询服务中订单信息(用于本地无orderId时) @@ -107,7 +115,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @GET( "/autopilot-car-hailing/api/v1/driver/queryOrderInService" ) @GET( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrderInService" ) - Observable queryOrderInService(@Header ("appId") String appId,@Header("ticket") String ticket,@Query("sn") String sn); + Observable queryOrderInService(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Query("sn") String sn); /** * 取消订单 @@ -115,7 +124,8 @@ interface TaxiServiceApiNew { @Headers({"Content-type:application/json;charset=UTF-8"}) // @POST("/autopilot-car-hailing/api/v1/driver/cancelOrder") @POST("/autopilot-car-hailing/order/v2/driver/taxi/cancelOrder") - Observable cancelOrder(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderCancelReqBean data); + Observable cancelOrder(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Body OrderCancelReqBean data); /** * 订单列表获取 @@ -125,7 +135,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @POST( "/autopilot-car-hailing/api/v1/driver/queryOrders" ) @POST( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrders" ) - Observable queryOrdersList(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrdersListQueryReqBean data); + Observable queryOrdersList(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Body OrdersListQueryReqBean data); /** * 订单状态更新 @@ -136,7 +147,8 @@ interface TaxiServiceApiNew { // @POST( "/autopilot-car-hailing/api/v1/driver/order/updateStatus" ) // @POST( "/autopilot-car-hailing/order/v2/driver/taxi/order/updateStatus" ) @POST( "/autopilot-car-hailing/order/v2/vehicle/taxi/driver/updateStatus" ) - Observable updateOrderStatus(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderStatusUpdateReqBean data); + Observable updateOrderStatus(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Body OrderStatusUpdateReqBean data); /** * 收车/出车状态更新 @@ -146,7 +158,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @POST( "/autopilot-car-hailing/api/v1/driver/serviceStatus/update" ) @POST( "/autopilot-car-hailing/car/v2/driver/taxi/serviceStatus/update" ) - Observable updateDriverServiceStatus(@Header ("appId") String appId,@Header("ticket") String ticket,@Body DriverStatusUpdateReqBean data); + Observable updateDriverServiceStatus(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Body DriverStatusUpdateReqBean data); /** * 收车/出车状态查询 @@ -156,7 +169,8 @@ interface TaxiServiceApiNew { @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" ) - Observable queryDriverServiceStatus(@Header ("appId") String appId,@Header("ticket") String ticket,@Query("sn") String sn); + Observable queryDriverServiceStatus(@Header ("appId") String appId + ,@Header("ticket") String ticket,@Query("sn") String sn); /** * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度 @@ -166,7 +180,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @POST( "/autopilot-car-hailing/api/v1/driver/heartbeat" ) @POST( "/autopilot-car-hailing/location/v2/driver/taxi/heartbeat" ) - Observable runCarHeartbeat(@Header ("appId") String appId,@Header("ticket") String ticket,@Body CarHeartbeatReqBean data); + Observable runCarHeartbeat(@Header ("appId") String appId,@Header("ticket") String ticket + ,@Body CarHeartbeatReqBean data); /** * 查询司机服务数据 @@ -176,7 +191,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @GET( "/autopilot-car-hailing/api/v1/driver/serviceData/query" ) @GET( "/autopilot-car-hailing/order/v2/driver/taxi/serviceData/query" ) - Observable queryServiceData(@Header ("appId") String appId,@Header("ticket") String ticket,@Query("sn") String sn); + Observable queryServiceData(@Header ("appId") String appId + ,@Header("ticket") String ticket,@Query("sn") String sn); /** * 上传工控机返回的全路径规划数据 @@ -188,7 +204,8 @@ interface TaxiServiceApiNew { @Headers( {"Content-type:application/json;charset=UTF-8"} ) @POST("/autopilot-car-hailing/order/v2/driver/taxi/saveOrderRoute") // @POST("/mock/268/autopilot-car-hailing/order/v2/driver/taxi/orderRoute") - Observable updateOrderRoute(@Header ("appId") String appId, @Header("ticket") String ticket, @Body OrderRouteUpdateReqBean data); + Observable updateOrderRoute(@Header ("appId") String appId + , @Header("ticket") String ticket, @Body OrderRouteUpdateReqBean data); /** * 上报订单剩余里程和剩余时间 @@ -199,11 +216,24 @@ interface TaxiServiceApiNew { */ @Headers( {"Content-type:application/json;charset=UTF-8"} ) @POST("/autopilot-car-hailing/order/v2/driver/taxi/reportOrderRemain") - Observable reportOrderRemain(@Header ("appId") String appId, @Header("ticket") String ticket, @Body UpdateOrderDisAndTimeReqBean data); + Observable reportOrderRemain(@Header ("appId") String appId + , @Header("ticket") String ticket, @Body UpdateOrderDisAndTimeReqBean data); @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" ) @GET( "/autopilot-car-hailing/order/v2/driver/taxi/orderRoute" ) - Observable queryOrderRoute(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("orderNo") String orderNo); + Observable queryOrderRoute(@Header ("appId") String appId + , @Header("ticket") String ticket, @Query("orderNo") String orderNo); + + /** + * 提交用户输入的手机后4位、并进行状态扭转 用于调试跳过乘客屏使用 + * @param data + * @return + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @POST( "/autopilot-car-hailing/order/v2/vehicle/taxi/passenger/verification/phone" ) + Observable checkPhoneAndUpdateOrderStatus(@Header ("appId") String appId + , @Header("ticket") String ticket, @Body TaxiCheckPhoneUpdateOrderReqBean data); + } 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 8d5bc8c7d3..2634838a10 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 @@ -29,6 +29,8 @@ import com.mogo.och.taxi.bean.OrdersListQueryReqBean; 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.TaxiCheckPhoneBaseRespBean; +import com.mogo.och.taxi.bean.TaxiCheckPhoneUpdateOrderReqBean; import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean; import com.mogo.och.taxi.constant.TaxiConst; @@ -345,6 +347,18 @@ public class TaxiServiceManager { .subscribe(getSubscribeImpl(context,callback,"queryOrderRoute")); } + public void checkPhoneAndUpdateOrderStatus(Context context, String orderNo,String phone + ,TaxiServiceCallback callback){ + + mOCHTaxiServiceApi.checkPhoneAndUpdateOrderStatus( + MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,new TaxiCheckPhoneUpdateOrderReqBean(orderNo,phone)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus")); + } + private SubscribeImpl getSubscribeImpl( Context context, TaxiServiceCallback callback, String apiName) { return new SubscribeImpl(RequestOptions.create(context)) { 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 cc33dde65a..d1e99cd486 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 @@ -355,6 +355,9 @@ public class TaxiFragment extends BaseTaxiTabFragment { + TaxiModel.getInstance().debugPassengerCheckDone(); + }); } private void testRouteInfoUpload() { diff --git a/OCH/mogo-och-taxi/src/main/res/layout/taxi_panel.xml b/OCH/mogo-och-taxi/src/main/res/layout/taxi_panel.xml index 333782635a..18a801ebf2 100644 --- a/OCH/mogo-och-taxi/src/main/res/layout/taxi_panel.xml +++ b/OCH/mogo-och-taxi/src/main/res/layout/taxi_panel.xml @@ -62,6 +62,13 @@ android:onClick="testToEnd" android:text="到达目的地" android:textSize="12sp" /> +