[Taxi无人化]refactor: 乘客屏相关接口及数据结构调整;

refactor: 起自驾时 startName/endName 直接传 中文名字,不传拼音了;
This commit is contained in:
aibingbing
2023-08-14 17:52:09 +08:00
parent a760dba176
commit 4490472c1d
16 changed files with 346 additions and 221 deletions

View File

@@ -0,0 +1,35 @@
package com.mogo.och.taxi.passenger.bean;
import com.mogo.eagle.core.data.BaseData;
import java.util.List;
public class TaxiPassengerGetTrajectoryByLineIdRespBean extends BaseData {
public List<TrajectoryInfo> data;
public static class TrajectoryInfo {
public long lineId; // line id
public String csvFileUrl = ""; //轨迹文件下载的cos url默认“”
public String csvFileMd5 = ""; //轨迹文件md5默认“”
public String txtFileUrl = ""; //打点文件下载的cos url默认“”
public String txtFileMd5 = ""; //轨迹文件md5默认“”
public long contrailSaveTime; //上传轨迹完成时间戳ms用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖
public String carModel = ""; //[optional] 车型号如红旗H9默认“”暂不加入校验逻辑、用于人工排查问题
public String csvFileUrlDPQP = ""; //轨迹文件下载的cos url默认“”
public String csvFileMd5DPQP = ""; //轨迹文件md5默认“”
public String txtFileUrlDPQP = ""; //打点文件下载的cos url默认“”
public String txtFileMd5DPQP = ""; //轨迹文件md5默认“”
public long contrailSaveTimeDPQP; //上传轨迹完成时间戳ms用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖
}
public TrajectoryInfo getTrajectoryInfoByLineId(long lineId) {
if (data != null) {
for (TrajectoryInfo l : data) {
if (l != null && l.lineId == lineId) {
return l;
}
}
}
return null;
}
}

View File

@@ -6,11 +6,11 @@ package com.mogo.och.taxi.passenger.bean;
*/
public class TaxiPassengerOrderQueryReqBean {
public String driverSn;
public String sn;
public String orderNo;
public TaxiPassengerOrderQueryReqBean(String driverSn, String orderNo) {
this.driverSn = driverSn;
public TaxiPassengerOrderQueryReqBean(String sn, String orderNo) {
this.sn = sn;
this.orderNo = orderNo;
}
}

View File

@@ -2,88 +2,10 @@ package com.mogo.och.taxi.passenger.bean;
import com.mogo.eagle.core.data.BaseData;
import java.util.List;
import java.util.Objects;
/**
* Created by pangfan on 2021/8/19
* 查询订单返回数据结构
*/
public class TaxiPassengerOrderQueryRespBean extends BaseData {
public Result data;
public static class Result implements Comparable<Result>{
// 订单no
public String orderNo;
// 订单类型
public int orderType; //1即时单 2预约单
// 订单状态
public int orderStatus;
// 订单运营类型 9出租车10小巴
public int businessType;
// 起始站点id
public int startSiteId;
// 起始站点名称
public String startSiteAddr;
// 起始站点坐标
public List<Double> startSitePoint; //wgs坐标用于自动驾驶 [lon,lat]
public List<Double> startSiteGcjPoint; //高德坐标,用于本地计算距离 [lon,lat]
// 终点站点id
public int endSiteId;
// 终点站点名称
public String endSiteAddr;
// 终点站点坐标
public List<Double> endSitePoint; //wgs坐标用于自动驾驶 [lon,lat]
public List<Double> endSiteGcjPoint; //高德坐标,用于计算距离 [lon,lat]
// 车牌号
public String carNumber;
//订单创建时间戳
public long createTime;
//开始服务时间戳:司机点击'开始服务'后订单状态更新成功的时间
public long startTime;
//预计用车时间:预约单=下单时的预约用车时间;即时单=派单成功的时间+预估的达到上车点的时间
public long bookingTime;
//乘客手机号
public String passengerPhone;
//订单多少乘客
public String passengerNum;
public long lineId = -1; //路线id默认-1
public String csvFileUrl = ""; //轨迹文件下载的cos url默认“”
public String csvFileMd5 = ""; //轨迹文件md5默认“”
public String txtFileUrl = ""; //打点文件下载的cos url默认“”
public String txtFileMd5 = ""; //轨迹文件md5默认“”
public long contrailSaveTime; //上传轨迹完成时间戳ms用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖
public String carModel = ""; //[optional] 车型号如红旗H9默认“”暂不加入校验逻辑、用于人工排查问题
public String csvFileUrlDPQP = ""; //轨迹文件下载的cos url默认“”
public String csvFileMd5DPQP = ""; //轨迹文件md5默认“”
public String txtFileUrlDPQP = ""; //打点文件下载的cos url默认“”
public String txtFileMd5DPQP = ""; //轨迹文件md5默认“”
public long contrailSaveTimeDPQP; //上传轨迹完成时间戳ms用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖
@Override
public int compareTo(Result o) {
boolean isEqual = this.orderNo.equals(o.orderNo);
return isEqual ? 0 : 1;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Result result = (Result) o;
return Objects.equals(orderNo, result.orderNo) &&
orderType == result.orderType &&
orderStatus == result.orderStatus &&
businessType == result.businessType;
}
@Override
public int hashCode() {
return Objects.hash(orderNo, orderType, orderStatus, businessType, startSiteId,
startSiteAddr, startSitePoint, startSiteGcjPoint, endSiteId, endSiteAddr,
endSitePoint, endSiteGcjPoint, carNumber, createTime, startTime);
}
}
public TaxiPassengerOrdersInServiceQueryRespBean.OrderBean data;
}

View File

@@ -3,6 +3,7 @@ package com.mogo.och.taxi.passenger.bean;
import com.mogo.eagle.core.data.BaseData;
import java.util.List;
import java.util.Objects;
/**
* Created on 2021/9/8
@@ -12,6 +13,60 @@ public class TaxiPassengerOrdersInServiceQueryRespBean extends BaseData {
public Result data;
public static class Result {
public List<TaxiPassengerOrderQueryRespBean.Result> servicing; //服务中订单
public String sn; // sn
public long lineId = -1; //路线id默认-1
public int serviceStatus;//控制接单的状态0:暂停 1:开始)
public int currentStatus;//车当前状态0: 空闲 1:加载任务 2:开始任务 3:到站(任务结束))
public int taskType;//任务类型1:虚拟任务 2:接驾任务 3:送驾任务)
public SiteBean endSite;
public OrderBean order;
public TaxiPassengerGetTrajectoryByLineIdRespBean.TrajectoryInfo trajectoryInfoByQuery;//通过line id查询的详细信息
}
public static class SiteBean {
public int siteId;// site id
public String siteName; // site 名称
public Double gcjLon;// gcj 经度
public Double gcjLat;// gcj 纬度
public Double wgs84Lon;// wgs84 经度
public Double wgs84Lat;// wgs84 纬度
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SiteBean siteBean = (SiteBean) o;
return siteId == siteBean.siteId && Objects.equals(siteName, siteBean.siteName) && Objects.equals(gcjLon, siteBean.gcjLon) && Objects.equals(gcjLat, siteBean.gcjLat) && Objects.equals(wgs84Lon, siteBean.wgs84Lon) && Objects.equals(wgs84Lat, siteBean.wgs84Lat);
}
@Override
public int hashCode() {
return Objects.hash(siteId, siteName, gcjLon, gcjLat, wgs84Lon, wgs84Lat);
}
}
public static class OrderBean {
public String orderNo;// 订单号
public int orderStatus;//订单状态
public String bookingUserPhone;// 用户手机号
public int passengerSize;//乘客人数
public SiteBean orderStartSite;//站点-起点
public SiteBean orderEndSite;//站点-终点
public List<Long> planningLines;//预加载的line
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
OrderBean orderBean = (OrderBean) o;
return orderStatus == orderBean.orderStatus && passengerSize == orderBean.passengerSize && Objects.equals(orderNo, orderBean.orderNo) && Objects.equals(bookingUserPhone, orderBean.bookingUserPhone) && Objects.equals(orderStartSite, orderBean.orderStartSite) && Objects.equals(orderEndSite, orderBean.orderEndSite) && Objects.equals(planningLines, orderBean.planningLines);
}
@Override
public int hashCode() {
return Objects.hash(orderNo, orderStatus, bookingUserPhone, passengerSize, orderStartSite, orderEndSite, planningLines);
}
}
}

View File

@@ -8,16 +8,13 @@ public class TaxiPassengerStartReqBean {
public String orderNo;
public String sn;
public TaxiPassengerStartReqBean.Result loc;
public Double gcjLat;
public Double gcjLon;
public static class Result {
public Double lat;
public Double lon;
}
public TaxiPassengerStartReqBean(String sn, String orderNo, TaxiPassengerStartReqBean.Result point) {
public TaxiPassengerStartReqBean(String sn, String orderNo, Double gcjLat, Double gcjLon) {
this.sn = sn;
this.orderNo = orderNo;
this.loc = point;
this.gcjLat = gcjLat;
this.gcjLon = gcjLon;
}
}

View File

@@ -1,6 +1,7 @@
package com.mogo.och.taxi.passenger.callback
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
/**
* Created on 2021/9/8
@@ -9,7 +10,7 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
*/
interface IOCHTaxiPassengerOrderStatusCallback {
// 当前进行单状态变更:新到进行中订单、进行中单状态变更
fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?){}
fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?){}
// 当前位置距离上车点的距离(米)、预估时间(秒)
fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long,stationDistance:Int){}

View File

@@ -14,6 +14,8 @@ class TaxiPassengerConst {
const val TAXI_AVERAGE_SPEED = 38
// Taxi
const val VEHICLE_TYPE = 9
// 埋点key接管后点击'自动驾驶'按钮启动
const val EVENT_KEY_RESTART_AUTOPILOT = "event_key_och_taxi_restart_autopilot"

View File

@@ -13,10 +13,9 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
import com.mogo.och.common.module.utils.PinYinUtil
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum
import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager
import com.mogo.och.taxi.passenger.utils.TaxiPassengerAnalyticsManager
@@ -28,9 +27,10 @@ object AutopilotManager : IMoGoAutopilotStatusListener {
init {
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
}
//检测当前订单
private fun checkCurrentOCHOrder(): Boolean {
return TaxiPassengerModel.currentOCHOrder != null && TaxiPassengerModel.currentOCHOrder!!.startSiteGcjPoint != null && TaxiPassengerModel.currentOCHOrder!!.endSiteGcjPoint != null
return TaxiPassengerModel.currentOCHOrder != null && TaxiPassengerModel.currentOCHOrder!!.orderStartSite != null && TaxiPassengerModel.currentOCHOrder!!.orderEndSite != null
}
@@ -44,10 +44,11 @@ object AutopilotManager : IMoGoAutopilotStatusListener {
return
}
if (TaxiPassengerModel.currentOCHOrder!!.orderStatus == TaxiPassengerOrderStatusEnum.UserArriveAtStart.code) {
startServicePilotDone()
startAutoPilotServiceByPassenger()
}
if(CallerAutoPilotStatusListenerManager.getState()
== IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
if (CallerAutoPilotStatusListenerManager.getState()
== IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
) {
ToastUtils.showShort("自驾中、请勿重复启动")
return
}
@@ -57,8 +58,8 @@ object AutopilotManager : IMoGoAutopilotStatusListener {
", 请稍候重试"
)
TaxiPassengerAnalyticsManager.triggerUnableStartAPReasonEvent(
TaxiPassengerModel.currentOCHOrder!!.startSiteAddr,
TaxiPassengerModel.currentOCHOrder!!.endSiteAddr,
TaxiPassengerModel.currentOCHOrder!!.orderStartSite.siteName,
TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName,
TaxiPassengerModel.currentOCHOrder!!.orderNo,
OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason
)
@@ -77,10 +78,16 @@ object AutopilotManager : IMoGoAutopilotStatusListener {
SceneConstant.M_TAXI_P + TAG,
"start autopilot with parameter: %s",
GsonUtil.jsonFromObject(parameters)
+ " ,startSiteName=" + TaxiPassengerModel.currentOCHOrder!!.startSiteAddr
+ " ,endSiteName=" + TaxiPassengerModel.currentOCHOrder!!.endSiteAddr
+ " ,startSiteName=" + TaxiPassengerModel.currentOCHOrder!!.orderStartSite.siteName
+ " ,endSiteName=" + TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName
)
TaxiPassengerAnalyticsManager.triggerStartAutopilotEvent(
false,
false,
TaxiPassengerModel.currentOCHOrder!!.orderStartSite.siteName,
TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName,
TaxiPassengerModel.currentOCHOrder!!.orderNo
)
TaxiPassengerAnalyticsManager.triggerStartAutopilotEvent(false, false, TaxiPassengerModel.currentOCHOrder!!.startSiteAddr, TaxiPassengerModel.currentOCHOrder!!.endSiteAddr, TaxiPassengerModel.currentOCHOrder!!.orderNo)
}
private fun initAutopilotControlParameters(): AutopilotControlParameters? {
@@ -93,33 +100,37 @@ object AutopilotManager : IMoGoAutopilotStatusListener {
return null
}
val parameters = AutopilotControlParameters()
val startWgsLon = TaxiPassengerModel.currentOCHOrder!!.startSitePoint[0]
val startWgsLat = TaxiPassengerModel.currentOCHOrder!!.startSitePoint[1]
val endWgsLon = TaxiPassengerModel.currentOCHOrder!!.endSitePoint[0]
val endWgsLat = TaxiPassengerModel.currentOCHOrder!!.endSitePoint[1]
parameters.vehicleType = TaxiPassengerModel.currentOCHOrder!!.businessType
val startWgsLon = TaxiPassengerModel.currentOCHOrder!!.orderStartSite.wgs84Lon
val startWgsLat = TaxiPassengerModel.currentOCHOrder!!.orderStartSite.wgs84Lat
val endWgsLon = TaxiPassengerModel.currentOCHOrder!!.orderEndSite.wgs84Lon
val endWgsLat = TaxiPassengerModel.currentOCHOrder!!.orderEndSite.wgs84Lat
parameters.vehicleType = TaxiPassengerConst.VEHICLE_TYPE
parameters.startName =
PinYinUtil.getPinYinHeadChar(TaxiPassengerModel.currentOCHOrder!!.startSiteAddr) // 起点名称拼音首字母大写科学城B区2号门KXCBQ2HM
TaxiPassengerModel.currentOCHOrder!!.orderStartSite.siteName // 起点名称拼音首字母大写科学城B区2号门KXCBQ2HM
parameters.endName =
PinYinUtil.getPinYinHeadChar(TaxiPassengerModel.currentOCHOrder!!.endSiteAddr) // 终点名称拼音首字母大写科学城C区三号门KXCCQSHM
TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName // 终点名称拼音首字母大写科学城C区三号门KXCCQSHM
parameters.startLatLon =
AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon)
parameters.endLatLon = AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon)
if (parameters.autoPilotLine == null) {
parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine(
TaxiPassengerModel.currentOCHOrder!!.lineId,
TaxiPassengerModel.currentOCHOrder!!.csvFileUrl,
TaxiPassengerModel.currentOCHOrder!!.csvFileMd5,
TaxiPassengerModel.currentOCHOrder!!.txtFileUrl,
TaxiPassengerModel.currentOCHOrder!!.txtFileMd5,
TaxiPassengerModel.currentOCHOrder!!.contrailSaveTime,
TaxiPassengerModel.currentOCHOrder!!.carModel,
TaxiPassengerModel.currentOCHOrder!!.csvFileUrlDPQP,
TaxiPassengerModel.currentOCHOrder!!.csvFileMd5DPQP,
TaxiPassengerModel.currentOCHOrder!!.txtFileUrlDPQP,
TaxiPassengerModel.currentOCHOrder!!.txtFileMd5DPQP,
TaxiPassengerModel.currentOCHOrder!!.contrailSaveTimeDPQP
)
if (TaxiPassengerModel.currentLineId != null
&& TaxiPassengerModel.currentTrajectoryInfo != null
) {
parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine(
TaxiPassengerModel.currentLineId!!,
TaxiPassengerModel.currentTrajectoryInfo!!.csvFileUrl,
TaxiPassengerModel.currentTrajectoryInfo!!.csvFileMd5,
TaxiPassengerModel.currentTrajectoryInfo!!.txtFileUrl,
TaxiPassengerModel.currentTrajectoryInfo!!.txtFileMd5,
TaxiPassengerModel.currentTrajectoryInfo!!.contrailSaveTime,
TaxiPassengerModel.currentTrajectoryInfo!!.carModel,
TaxiPassengerModel.currentTrajectoryInfo!!.csvFileUrlDPQP,
TaxiPassengerModel.currentTrajectoryInfo!!.csvFileMd5DPQP,
TaxiPassengerModel.currentTrajectoryInfo!!.txtFileUrlDPQP,
TaxiPassengerModel.currentTrajectoryInfo!!.txtFileMd5DPQP,
TaxiPassengerModel.currentTrajectoryInfo!!.contrailSaveTimeDPQP
)
}
}
return parameters
}
@@ -159,13 +170,14 @@ object AutopilotManager : IMoGoAutopilotStatusListener {
TaxiPassengerAnalyticsManager.triggerStartAutopilotEvent(
false,
true,
TaxiPassengerModel.currentOCHOrder!!.startSiteAddr,
TaxiPassengerModel.currentOCHOrder!!.endSiteAddr,
TaxiPassengerModel.currentOCHOrder!!.orderStartSite.siteName,
TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName,
TaxiPassengerModel.currentOCHOrder!!.orderNo
)
//startServicePilotDone()
}
}
else -> {}
}
}
@@ -173,21 +185,19 @@ object AutopilotManager : IMoGoAutopilotStatusListener {
/**
* 乘客屏启动自动驾驶成功
*/
fun startServicePilotDone() {
private fun startAutoPilotServiceByPassenger() {
if (TaxiPassengerModel.currentOCHOrder == null) return
val result = TaxiPassengerStartReqBean.Result()
val currentLocation = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
result.lat = currentLocation.latitude
result.lon = currentLocation.longitude
TaxiPassengerServiceManager.startServicePilotDone(
TaxiPassengerModel.currentOCHOrder!!.orderNo, result,
TaxiPassengerServiceManager.startAutoPilotServiceByPassenger(
TaxiPassengerModel.currentOCHOrder!!.orderNo,
currentLocation.latitude,
currentLocation.longitude,
object : OchCommonServiceCallback<TaxiPassengerBaseRespBean> {
override fun onSuccess(data: TaxiPassengerBaseRespBean) {
VoiceNotice.showNotice("坐稳扶好,我们出发咯!", AIAssist.LEVEL2)
}
override fun onFail(code: Int, msg: String) {}
})
}
}

View File

@@ -12,7 +12,6 @@ import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener
import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager
import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P
@@ -29,10 +28,10 @@ import com.mogo.och.common.module.manager.loopmanager.LoopInfo
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerGetTrajectoryByLineIdRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum.Companion.valueOf
@@ -53,13 +52,23 @@ object TaxiPassengerModel {
private val TAG = TaxiPassengerModel::class.java.simpleName
private const val STARTREADYTOAUTOPILOT = "startReadyToAutopilot"
private const val MINANDWAITSERVICE = "mInAndWaitService"
// 获取当前订单
@Volatile
var currentOCHOrder: TaxiPassengerOrderQueryRespBean.Result? = null//当前订单
var currentOCHOrder: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean? = null//当前订单
private val mOrderStatusCallbackMap: MutableMap<String, IOCHTaxiPassengerOrderStatusCallback> = ConcurrentHashMap()
// 当前line id
@Volatile
var currentLineId: Long? = null
// 当前的轨迹信息
@Volatile
var currentTrajectoryInfo: TaxiPassengerGetTrajectoryByLineIdRespBean.TrajectoryInfo? = null
private val mOrderStatusCallbackMap: MutableMap<String, IOCHTaxiPassengerOrderStatusCallback> =
ConcurrentHashMap()
fun setOrderStatusCallback(tag: String?, callback: IOCHTaxiPassengerOrderStatusCallback?) {
if (tag == null || "" == tag) return
@@ -96,9 +105,9 @@ object TaxiPassengerModel {
}
private fun initListeners() {
// 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口
IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener)
IntentManager.getInstance()
.registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener)
AbnormalFactorsLoopManager.startLoopAbnormalFactors(mContext!!)
@@ -124,7 +133,10 @@ object TaxiPassengerModel {
private fun startOrStopOrderLoop(start: Boolean) {
d(M_TAXI_P + TAG, "startOrStopOrderLoop() $start")
if (start) {
BizLoopManager.setLoopFunction(MINANDWAITSERVICE,LoopInfo(2, TaxiPassengerModel::queryInAndWaitOrders))
BizLoopManager.setLoopFunction(
MINANDWAITSERVICE,
LoopInfo(2, TaxiPassengerModel::queryInAndWaitOrders)
)
} else {
BizLoopManager.removeLoopFunction(MINANDWAITSERVICE)
}
@@ -141,24 +153,28 @@ object TaxiPassengerModel {
object : OchCommonServiceCallback<TaxiPassengerOrdersInServiceQueryRespBean> {
override fun onSuccess(data: TaxiPassengerOrdersInServiceQueryRespBean) {
if (data.data == null) {
if(currentOCHOrder!=null){
queryCurOrderStatus()
if (currentOCHOrder != null) {
queryCurrentOrderStatus()
}
return
}
//1. 处理进行中订单
if (data.data.servicing != null && data.data.servicing.isNotEmpty()) {
if (data.data != null) {
// 1.1. 当存在进行中单时对本地currentOrder进行更新
val currentOrder = data.data.servicing[0]
if(currentOCHOrder==null||currentOCHOrder?.orderStatus!=currentOrder.orderStatus){
val currentOrder = data.data.order
currentLineId = data.data.lineId
currentTrajectoryInfo = data.data.trajectoryInfoByQuery
if (currentOCHOrder == null
|| currentOCHOrder?.orderStatus != currentOrder.orderStatus
) {
currentOCHOrder = currentOrder
orderStatusChange()
}else {
} else {
currentOCHOrder = currentOrder
}
}else{
if(currentOCHOrder!=null){
queryCurOrderStatus()
} else {
if (currentOCHOrder != null) {
queryCurrentOrderStatus()
}
}
}
@@ -166,24 +182,36 @@ object TaxiPassengerModel {
override fun onError() {
e(M_TAXI_P + TAG, "queryInAndWaitOrders onError")
}
override fun onFail(code: Int, msg: String) {
e(M_TAXI_P + TAG, "queryInAndWaitOrders$code$msg")
}
})
}
//仅用于轮询时查到本地有mCurrentOCHOrder但请求结果无进行中单or orderId不一致是复查本地currentOrder
private fun queryCurOrderStatus() {
/**
* 仅用于轮询时查到本地有mCurrentOCHOrder但请求结果无进行中单or orderId不一致是复查本地currentOrder
*/
private fun queryCurrentOrderStatus() {
currentOCHOrder?.orderNo?.let {
TaxiPassengerServiceManager.queryOrderById(
mContext!!, it,
mContext!!,
it,
object : OchCommonServiceCallback<TaxiPassengerOrderQueryRespBean> {
override fun onSuccess(data: TaxiPassengerOrderQueryRespBean) {
if (data.data != null && currentOCHOrder != null && currentOCHOrder!!.orderNo == data.data.orderNo) {
if (data.data.orderStatus == TaxiPassengerOrderStatusEnum.Cancel.code || data.data.orderStatus == TaxiPassengerOrderStatusEnum.JourneyCompleted.code || data.data.orderStatus == TaxiPassengerOrderStatusEnum.None.code) {
if (data.data != null
&& currentOCHOrder != null
&& currentOCHOrder!!.orderNo == data.data.orderNo
) {
if (data.data.orderStatus == TaxiPassengerOrderStatusEnum.Cancel.code
|| data.data.orderStatus == TaxiPassengerOrderStatusEnum.JourneyCompleted.code
|| data.data.orderStatus == TaxiPassengerOrderStatusEnum.None.code
) {
currentOCHOrder = data.data
orderStatusChange()
currentOCHOrder = null
currentLineId = null
currentTrajectoryInfo = null
} else {
currentOCHOrder = data.data
orderStatusChange()
@@ -199,7 +227,7 @@ object TaxiPassengerModel {
// 获取当前订单状态
val curOrderStatus: TaxiPassengerOrderStatusEnum
get() {
val order: TaxiPassengerOrderQueryRespBean.Result =
val order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean =
currentOCHOrder
?: return TaxiPassengerOrderStatusEnum.None
return valueOf(order.orderStatus)
@@ -217,10 +245,15 @@ object TaxiPassengerModel {
val lastTime: Double = distance / TaxiPassengerConst.TAXI_AVERAGE_SPEED * 3.6 //秒
for (callback in mOrderStatusCallbackMap.values) {
callback.onCurrentOrderDistToEndChanged(distance.toLong(),lastTime.toLong(),allDistance.toInt())
callback.onCurrentOrderDistToEndChanged(
distance.toLong(),
lastTime.toLong(),
allDistance.toInt()
)
}
}
}
private val mNetWorkIntentListener = IMogoIntentListener { intentStr, intent ->
d(M_TAXI_P + TAG, "onIntentReceived = %s", intentStr)
if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) {
@@ -230,11 +263,19 @@ object TaxiPassengerModel {
}
}
private val mAdasStartFailureListener: OchAdasStartFailureCallback = object : OchAdasStartFailureCallback {
override fun onStartAutopilotFailure(startFailedCode: String, startFailedMessage: String) {
TaxiPassengerAnalyticsManager.triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage)
private val mAdasStartFailureListener: OchAdasStartFailureCallback =
object : OchAdasStartFailureCallback {
override fun onStartAutopilotFailure(
startFailedCode: String,
startFailedMessage: String
) {
TaxiPassengerAnalyticsManager.triggerStartAutopilotFailureEventByAdas(
startFailedCode,
startFailedMessage
)
}
}
private val iMsgBoxEventListener: IMsgBoxEventListener = object : IMsgBoxEventListener {
override fun onSummaryClickEvent() {
if (currentOCHOrder == null) {
@@ -251,13 +292,18 @@ object TaxiPassengerModel {
if (currentOCHOrder == null) return
TaxiPassengerServiceManager.checkPhoneAndUpdateOrderStatus(
currentOCHOrder!!.orderNo,
phoneTail, object : OchCommonServiceCallback<TaxiPassengerBaseRespBean> {
phoneTail,
object : OchCommonServiceCallback<TaxiPassengerBaseRespBean> {
override fun onSuccess(data: TaxiPassengerBaseRespBean) {
if (data.code == 0 && currentOCHOrder != null) {
currentOCHOrder!!.orderStatus = TaxiPassengerOrderStatusEnum.UserArriveAtStart.code
currentOCHOrder!!.orderStatus =
TaxiPassengerOrderStatusEnum.UserArriveAtStart.code
//乘客验证成功,更新订单状态为 "乘客已上车", 立马弹出乘客开始行程页面,不再等待轮询
orderStatusChange()
VoiceNotice.showNotice("验证成功!关闭车门并佩戴安全带后开启行程吧!", AIAssist.LEVEL2)
VoiceNotice.showNotice(
"验证成功!关闭车门并佩戴安全带后开启行程吧!",
AIAssist.LEVEL2
)
}
}
@@ -271,7 +317,7 @@ object TaxiPassengerModel {
})
}
fun orderStatusChange(){
fun orderStatusChange() {
orderStatusChangeInner()
if (mOrderStatusCallbackMap.isNotEmpty()) {
d(M_TAXI_P + TAG, "最新的状态${curOrderStatus}")
@@ -285,12 +331,15 @@ object TaxiPassengerModel {
when (curOrderStatus) {
TaxiPassengerOrderStatusEnum.OnTheWayToStart -> {
}
TaxiPassengerOrderStatusEnum.ArriveAtStart -> {
}
TaxiPassengerOrderStatusEnum.UserArriveAtStart -> {
//开启轮询司机是否已准备好开启自动驾驶的环境
setStation()
}
TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> {
CallerFuncBizManager.bizProvider.queryV2XEvents() //全览模式的V2X事件轮询开始
//startOrStopQueryOrderRemaining(true)
@@ -298,39 +347,47 @@ object TaxiPassengerModel {
setStation()
CallerOrderListenerManager.invokeOrderStatus(true)
}
TaxiPassengerOrderStatusEnum.ArriveAtEnd -> {
AutopilotManager.clearAutopilotControlParameters()
//startOrStopQueryOrderRemaining(false)
CallerOrderListenerManager.invokeOrderStatus(false)
cleanStation()
clearStation()
}
TaxiPassengerOrderStatusEnum.JourneyCompleted -> {
AutopilotManager.clearAutopilotControlParameters()
//startOrStopQueryOrderRemaining(false)
cleanStation()
clearStation()
}
TaxiPassengerOrderStatusEnum.Cancel -> {
AutopilotManager.clearAutopilotControlParameters()
//startOrStopQueryOrderRemaining(false)
cleanStation()
clearStation()
}
TaxiPassengerOrderStatusEnum.None -> TODO()
}
}
fun setStation() {
if (currentOCHOrder != null) {
private fun setStation() {
if (currentOCHOrder != null && currentLineId != null) {
val startStation = MogoLocation()
startStation.longitude = currentOCHOrder!!.startSiteGcjPoint[0]
startStation.latitude = currentOCHOrder!!.startSiteGcjPoint[1]
startStation.longitude = currentOCHOrder!!.orderStartSite.gcjLon
startStation.latitude = currentOCHOrder!!.orderStartSite.gcjLat
val endStation = MogoLocation()
endStation.longitude = currentOCHOrder!!.endSiteGcjPoint[0]
endStation.latitude = currentOCHOrder!!.endSiteGcjPoint[1]
TrajectoryAndDistanceManager.setStationPoint(startStation, endStation, currentOCHOrder!!.lineId)
endStation.longitude = currentOCHOrder!!.orderEndSite.gcjLon
endStation.latitude = currentOCHOrder!!.orderEndSite.gcjLat
TrajectoryAndDistanceManager.setStationPoint(
startStation,
endStation,
currentLineId
)
}
}
fun cleanStation() {
private fun clearStation() {
TrajectoryAndDistanceManager.setStationPoint(null, null, -1L)
}

View File

@@ -3,6 +3,7 @@ package com.mogo.och.taxi.passenger.network
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerCheckPhoneUpdateOrderReqBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerGetTrajectoryByLineIdRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryReqBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
@@ -27,20 +28,32 @@ internal interface TaxiPassengerServiceApi {
* @return
*/
@Headers("Content-type:application/json;charset=UTF-8")
@GET("/autopilot-car-hailing/order/v2/driver/taxi/passenger/orderInService/query")
@GET("/och-taxi-cabin/api/flow/v1/queryCurrentTask")
fun queryOrdersInAndWaitService(
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
@Query("driverSn") driverSn: String
@Header("ticket") ticket: String = MoGoAiCloudClientConfig.getInstance().token,
@Query("sn") sn: String
): Observable<TaxiPassengerOrdersInServiceQueryRespBean>
/**
* 根据lineId查询Line详细信息包含了轨迹文件等信息
*/
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/och-taxi-cabin/api/business/v1/contrail")
fun getTrajectoryInfoByLineIds(
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
@Header("ticket") ticket: String = MoGoAiCloudClientConfig.getInstance().token,
@Query("lineIds") lineIds: List<Long>
):Observable<TaxiPassengerGetTrajectoryByLineIdRespBean>
/**
* 通过orderNo查询订单信息用于本地已经有orderNo时
* @param data
* @return
*/
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/autopilot-car-hailing/order/v2/driver/taxi/passenger/queryOrderById")
@POST("/och-taxi-cabin/api/business/v1/queryCarOrder")
fun queryOrderById(
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
@@ -53,7 +66,7 @@ internal interface TaxiPassengerServiceApi {
* @return
*/
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/autopilot-car-hailing/cab/flow/v1/driver/taxi/passenger/verification/phone")
@POST("/och-taxi-cabin/api/flow/v1/verification/phone")
fun checkPhoneAndUpdateOrderStatus(
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
@@ -68,8 +81,8 @@ internal interface TaxiPassengerServiceApi {
* @return
*/
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/autopilot-car-hailing/cab/flow/v1/driver/taxi/passenger/startServicePilot")
fun startServicePilotDone(
@POST("/och-taxi-cabin/api/flow/v1/startService")
fun startAutoPilotServiceByPassenger(
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
@Header("ticket") ticket: String= MoGoAiCloudClientConfig.getInstance().token,
@Body data: TaxiPassengerStartReqBean

View File

@@ -1,12 +1,8 @@
package com.mogo.och.taxi.passenger.network
import android.content.Context
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerCheckPhoneUpdateOrderReqBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P
@@ -14,45 +10,52 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.biz.network.interceptor.transformTry
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerCheckPhoneUpdateOrderReqBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerGetTrajectoryByLineIdRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryReqBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean
/**
* Created by pangfan on 2021/8/19
*/
object TaxiPassengerServiceManager {
private val mOCHTaxiServiceApi: TaxiPassengerServiceApi =
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(TaxiPassengerServiceApi::class.java)
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl())
.create(TaxiPassengerServiceApi::class.java)
private const val TAG = "TaxiPassengerServiceManager"
private var draiverSnCacher = ""
private var driverSnCache = ""
/**
* 获取Bus司机端的sn
* @return
*/
val draiverSn: String
get(){
private val driverSn: String
get() {
val serverToken = CallerTelematicManager.getServerToken()
if (serverToken != draiverSnCacher && serverToken.isNotEmpty()) {
draiverSnCacher = serverToken
if (serverToken != driverSnCache && serverToken.isNotEmpty()) {
driverSnCache = serverToken
}
return draiverSnCacher
return driverSnCache
}
val context:Context
val context: Context
get() {
return AbsMogoApplication.getApp()
}
private fun beforeNet():Boolean{
if (draiverSn.isBlank()) {
private fun beforeNet(): Boolean {
if (driverSn.isBlank()) {
CallerLogger.e(M_TAXI_P + TAG, "没有司机屏sn 请稍等在请求")
return true
}
return false
}
/**
* 查询全部服务中/待服务订单列表
* @param callback
@@ -61,10 +64,19 @@ object TaxiPassengerServiceManager {
fun queryOrdersInAndWaitService(
callback: OchCommonServiceCallback<TaxiPassengerOrdersInServiceQueryRespBean>?
) {
if(beforeNet()){
if (beforeNet()) {
return
}
mOCHTaxiServiceApi.queryOrdersInAndWaitService(driverSn = draiverSn) //获取到司机端的sn
mOCHTaxiServiceApi.queryOrdersInAndWaitService(sn = driverSn) //获取到司机端的sn
.flatMap { ordersInServiceQueryResp: TaxiPassengerOrdersInServiceQueryRespBean ->
val lineId = ordersInServiceQueryResp.data.lineId
return@flatMap mOCHTaxiServiceApi.getTrajectoryInfoByLineIds(lineIds = listOf(lineId))
.map { trajectoryInfoResp: TaxiPassengerGetTrajectoryByLineIdRespBean? ->
val lineInfoByQuery = trajectoryInfoResp?.getTrajectoryInfoByLineId(lineId)
ordersInServiceQueryResp.data.trajectoryInfoByQuery = lineInfoByQuery
ordersInServiceQueryResp
}
}
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryOrdersInAndWaitService"))
}
@@ -75,22 +87,41 @@ object TaxiPassengerServiceManager {
phone: String?,
callback: OchCommonServiceCallback<TaxiPassengerBaseRespBean>?
) {
mOCHTaxiServiceApi.checkPhoneAndUpdateOrderStatus(data= TaxiPassengerCheckPhoneUpdateOrderReqBean(orderNo, phone))
mOCHTaxiServiceApi.checkPhoneAndUpdateOrderStatus(
data = TaxiPassengerCheckPhoneUpdateOrderReqBean(
orderNo,
phone
)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus"))
}
/**
* 乘客启动自动驾驶 开始服务
*/
@JvmStatic
fun startServicePilotDone(
orderNo: String?, loc: TaxiPassengerStartReqBean.Result?,
fun startAutoPilotServiceByPassenger(
orderNo: String?,
gcjLat: Double?,
gcjLon: Double?,
callback: OchCommonServiceCallback<TaxiPassengerBaseRespBean>?
) {
if(beforeNet()){
if (beforeNet()) {
return
}
mOCHTaxiServiceApi.startServicePilotDone(data = TaxiPassengerStartReqBean(draiverSn, orderNo, loc))
mOCHTaxiServiceApi.startAutoPilotServiceByPassenger(
data = TaxiPassengerStartReqBean(driverSn, orderNo, gcjLat, gcjLon)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "startServicePilotDone"))
.retry(3)
.subscribe(
OchCommonSubscribeImpl(
context,
callback,
"startAutoPilotServiceByPassenger"
)
)
}
/**
@@ -104,11 +135,11 @@ object TaxiPassengerServiceManager {
context: Context, orderNo: String?,
callback: OchCommonServiceCallback<TaxiPassengerOrderQueryRespBean>?
) {
if(beforeNet()){
if (beforeNet()) {
return
}
mOCHTaxiServiceApi.queryOrderById(
data=TaxiPassengerOrderQueryReqBean(draiverSn, orderNo)
data = TaxiPassengerOrderQueryReqBean(driverSn, orderNo)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryOrderById"))

View File

@@ -9,6 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum
import com.mogo.och.taxi.passenger.model.AutopilotManager
@@ -48,7 +49,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
TaxiPassengerModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", null)
}
override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?) {
override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) {
order?.let {
updateOrderView(order)
}
@@ -61,7 +62,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
) {
}
private fun updateOrderView(order: TaxiPassengerOrderQueryRespBean.Result?) {
private fun updateOrderView(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) {
order?.let {
setItineraryVisibility()
when (TaxiPassengerModel.curOrderStatus) {

View File

@@ -15,8 +15,8 @@ class ArrivedViewModel: ViewModel() {
fun setViewCallback(viewCallback: ArrivedViewCallback){
this.viewCallback = viewCallback
TaxiPassengerModel.currentOCHOrder?.endSiteAddr?.let {
this.viewCallback?.setEndStation(it)
TaxiPassengerModel.currentOCHOrder?.orderEndSite?.let {
this.viewCallback?.setEndStation(it.siteName)
}
}

View File

@@ -1,7 +1,7 @@
package com.mogo.och.taxi.passenger.ui.check
import androidx.lifecycle.ViewModel
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel
@@ -28,12 +28,12 @@ class ChekViewModel : ViewModel(), IOCHTaxiPassengerOrderStatusCallback {
private fun setOrderInfo() {
val currentOCHOrder = TaxiPassengerModel.currentOCHOrder
currentOCHOrder?.let { order ->
viewCallback?.setOrderInfo(order.startSiteAddr,
order.endSiteAddr, order.passengerNum, order.passengerPhone)
viewCallback?.setOrderInfo(order.orderStartSite.siteName,
order.orderEndSite.siteName, "${order.passengerSize}", order.bookingUserPhone)
}
}
override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?) {
override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) {
super.onCurrentOrderStatusChanged(order)
order?.let {
if(it.orderStatus != TaxiPassengerOrderStatusEnum.UserArriveAtStart.code){

View File

@@ -10,6 +10,7 @@ import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.NumberFormatUtil
import com.mogo.och.taxi.passenger.R
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel
@@ -62,10 +63,10 @@ class OrderInfoViewModel: ViewModel(), IMoGoChassisLocationGCJ02Listener,
fun setSpeed(speedValue:String)
}
override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?) {
order?.endSiteAddr?.let {
override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) {
order?.orderEndSite?.let {
UiThreadHandler.post {
viewCallback?.setEndStation(it)
viewCallback?.setEndStation(it.siteName)
}
}
when (TaxiPassengerModel.curOrderStatus) {

View File

@@ -40,16 +40,16 @@ class StartAutopilotViewModel : ViewModel(), IOCHTaxiPassengerOrderStatusCallbac
private fun setOrderInfo() {
val currentOCHOrder = TaxiPassengerModel.currentOCHOrder
currentOCHOrder?.let {
val phone = it.passengerPhone
val phone = it.bookingUserPhone
val show = if (phone.length > 8) {
//截取电话号码前三位
val phoneNumPre = phone.substring(0, 3)
//截取电话号码后四位
val phoneNumFix = phone.substring(7)
"用户:$phoneNumPre****$phoneNumFix 目的地:${it.endSiteAddr}"
"用户:$phoneNumPre****$phoneNumFix 目的地:${it.orderEndSite.siteName}"
} else {
"用户:${phone} 目的地:${it.endSiteAddr}"
"用户:${phone} 目的地:${it.orderEndSite.siteName}"
}
viewCallback?.setOrderInfo(show)
}