diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/LineInfoResponse.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/LineInfoResponse.kt index 71071b2507..58fca3e017 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/LineInfoResponse.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/LineInfoResponse.kt @@ -4,10 +4,10 @@ import com.mogo.eagle.core.data.BaseData /** */ -data class LineInfoResponse(val data: Result?) : BaseData() { - data class Result( +data class LineInfoResponse(val data: LineInfo?) : BaseData() { + data class LineInfo( val name: String?,//线路名称 - val lineId: Int?,//线路Id + val lineId: Long?,//线路Id ) } diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt index 5017f43550..40d2cd16a9 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt @@ -14,8 +14,8 @@ data class OrderInfoResponse(val data: OrderInfo?) : BaseData() { val lineName: String?,//线路名称 val siteId: Long?,//站点id val siteName: String?,//站点名称 - val wgs84Lat: Long?,//高精地图 - val wgs84Lon: Long?,//高精地图 + val wgs84Lat: Double?,//高精地图 + val wgs84Lon: Double?,//高精地图 val startTime: Long?,//开始时间 val endTime: Long?,//结束时间 val passengerPhone: String?,//乘客手机号 diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/SiteInfoResponse.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/SiteInfoResponse.kt index 4aae013252..e6267b6a48 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/SiteInfoResponse.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/SiteInfoResponse.kt @@ -8,9 +8,9 @@ import java.util.* */ data class SiteInfoResponse(val data: List?) : BaseData(){ data class SiteInfo( - val lineId: Int?,//线路Id + val lineId: Long?,//线路Id val lineName: String?,//线路名称 - val siteId: Int?,//线路Id + val siteId: Long?,//线路Id val siteName: String?,//站点名称 val Wgs84Lon: Double?,//高精坐标 val Wgs84Lat: Double?,//高精坐标 diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt similarity index 89% rename from OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt rename to OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index fa5860c937..54ecd520c7 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -36,13 +36,14 @@ import java.util.concurrent.ConcurrentHashMap * Created on 2022/3/31 */ @SuppressLint("StaticFieldLeak") -object BusPassengerModel { +object CharterPassengerModel { private const val TAG = "BusPassengerModel" private const val TAGLOGIN = "BusPassengerModelLogin" private const val TAGORDER = "BusPassengerModelOrder" private const val TAGCARSTATUS = "BusPassengerModelCarStatus" private const val TAGCALIBRATION = "BusPassengerModelCalibration" + // 路距计算 private const val TAGDISTANCE = "BusPassengerModelDistance" @@ -51,21 +52,23 @@ object BusPassengerModel { //Model->Presenter:自动驾驶状态相关 var mADASStatusCallback: IBusPassengerADASStatusCallback? = null - // bus路线信息更新 + // 定位监听 private val mControllerStatusCallbackMap = ConcurrentHashMap() // 当前位置坐标 private var mLocation: MogoLocation? = null + // 订单信息 有订单有线路结束订单 private var orderInfo: OrderInfoResponse.OrderInfo? = null + // 轨迹信息 用来启动自动驾驶 private var locusInfo: LocusResponse.LocusInfo? = null fun init() { AbsMogoApplication.getApp().also { this.mContext = it } initListeners() - queryDriverOperationStatus() + queryLoginStatus() } fun release() { @@ -122,7 +125,7 @@ object BusPassengerModel { } else { BusPassengerModelLoopManager.setLoopFunction( TAGLOGIN, - LoopInfo(3, ::queryDriverOperationStatus) + LoopInfo(3, ::queryLoginStatus) ) } } @@ -194,7 +197,7 @@ object BusPassengerModel { /** * 查询车辆登录状态、车牌、司机手机号、司机sn */ - fun queryDriverOperationStatus() { + fun queryLoginStatus() { BusPassengerServiceManager.queryDriverOperationStatus( mContext, object : OchCommonServiceCallback { override fun onSuccess(data: M1DriverLoginStatusResponse?) { @@ -211,7 +214,7 @@ object BusPassengerModel { CallerLogger.d(M_BUS_P + TAG, "onIntentReceived = %s", intentStr) if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) { if (NetworkUtils.isConnected(mContext)) { - queryDriverOperationStatus() + queryLoginStatus() } } } @@ -259,10 +262,10 @@ object BusPassengerModel { return } // 有订单有线路后结束轮训 - orderData.let { order-> - if (order.lineId == null || order.lineId == 0L||order.siteId == null || order.siteId == 0L) { + orderData.let { order -> + if (order.lineId == null || order.lineId == 0L || order.siteId == null || order.siteId == 0L) { // 去选线路和站点 - }else{ + } else { this.orderInfo = orderData // 有订单取消轮训 endOrderLoop() @@ -276,6 +279,28 @@ object BusPassengerModel { } } } + + fun hasSetLineAndSite(): Pair? { + orderInfo?.let { + if (it.lineId != null && it.lineId > 0 && it.siteId != null && it.siteId > 0) { + val lineInfo = LineInfoResponse.LineInfo(it.lineName,it.lineId) + val targetSizt = SiteInfoResponse.SiteInfo( + lineId = it.lineId, + lineName = it.lineName, + siteId = it.siteId, + siteName = it.siteName, + Wgs84Lat = it.wgs84Lat, + Wgs84Lon = it.wgs84Lon, + GcjLat = null, + GcjLon = null, + seq = null, + type = null + ) + return Pair(lineInfo,targetSizt) + } + } + return null + } // endregion // region车辆服务状态轮询 @@ -292,6 +317,7 @@ object BusPassengerModel { private fun endCarStatusLoop() { BusPassengerModelLoopManager.removeLoopFunction(TAGCARSTATUS) } + /** * 查询车辆状态 判断订单是否结束、是否显示结束业务 */ @@ -308,16 +334,19 @@ object BusPassengerModel { } private fun carStatusLogic(data: BusinessStatusResponse.Result) { - if(data.orderNo!=null){// 订单进行中 + if (data.orderNo != null) {// 订单进行中 return } // 结束路距计算 endCalculateDistanceLoop() // 停止时间校准 endCalibrationLoop() - if (data.businessStatus==2) {// 订单结束 没有还车 + // 清理数据 + orderInfo = null + locusInfo = null + if (data.businessStatus == 2) {// 订单结束 没有还车 // todo 还车中 需要显示 @com.mogo.och.bus.passenger.ui.view.EndOrderView 页面 - }else{ + } else { // 车辆空闲 订单结束已经还车 // 结束车态轮训 endCarStatusLoop() @@ -330,7 +359,10 @@ object BusPassengerModel { * 启动时间校准轮训 */ private fun startCalibrationLoop() { - BusPassengerModelLoopManager.setLoopFunction(TAGCALIBRATION, LoopInfo(120, ::queryBusinessTime)) + BusPassengerModelLoopManager.setLoopFunction( + TAGCALIBRATION, + LoopInfo(120, ::queryBusinessTime) + ) } /** @@ -339,6 +371,7 @@ object BusPassengerModel { private fun endCalibrationLoop() { BusPassengerModelLoopManager.removeLoopFunction(TAGCALIBRATION) } + /** * 查询车辆状态 判断订单是否结束、是否显示结束业务 */ @@ -358,7 +391,7 @@ object BusPassengerModel { // region 查询自动驾驶轨迹信息 private fun queryLocusByLineId(lineId: Long) { BusPassengerServiceManager.queryLocusByLineId( - mContext, lindId = lineId.toString(),object : OchCommonServiceCallback { + mContext, lindId = lineId.toString(), object : OchCommonServiceCallback { override fun onSuccess(data: LocusResponse?) { if (data?.data == null) return //设置全局轨迹信息 @@ -384,6 +417,7 @@ object BusPassengerModel { private fun endCalculateDistanceLoop() { BusPassengerModelLoopManager.removeLoopFunction(TAGDISTANCE) } + /** * 查询车辆状态 判断订单是否结束、是否显示结束业务 */ diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt index 37357dd3bf..88290a678d 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt @@ -1,12 +1,11 @@ package com.mogo.och.bus.passenger.presenter +import androidx.lifecycle.LifecycleOwner import com.mogo.commons.mvp.IView import com.mogo.commons.mvp.Presenter +import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.utils.RxUtils -import io.reactivex.Observable -import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable -import java.util.concurrent.TimeUnit abstract class BusBasePassengerFunctionDevicePresenter(view: V) : Presenter(view) { @@ -18,6 +17,11 @@ abstract class BusBasePassengerFunctionDevicePresenter(view: V) : return RxUtils.createSubscribe(delay,function) } + override fun onCreate(owner: LifecycleOwner) { + super.onCreate(owner) + CharterPassengerModel.queryLoginStatus() + } + companion object{ const val DEVICE_ACTION_TIMEOUT=2000 } diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt index cfe5683ca4..754142a98c 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt @@ -7,7 +7,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback -import com.mogo.och.bus.passenger.model.BusPassengerModel +import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.ui.M1DeviceFragment import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager import io.reactivex.disposables.Disposable @@ -27,7 +27,7 @@ class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) : override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this) - BusPassengerModel.setControllerStatusCallback(TAG,object : + CharterPassengerModel.setControllerStatusCallback(TAG,object : IBusPassengerControllerStatusCallback{ override fun onCarLocationChanged(location: MogoLocation?) { diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt index 912f6633f4..262661b41b 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt @@ -1,11 +1,10 @@ package com.mogo.och.bus.passenger.presenter import androidx.lifecycle.LifecycleOwner -import com.amap.api.maps.model.LatLng import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback -import com.mogo.och.bus.passenger.model.BusPassengerModel +import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.ui.MainFragment import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.NumberFormatUtil @@ -16,16 +15,16 @@ class BusPassengerPresenter(view: MainFragment?) : IBusPassengerControllerStatusCallback { override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) - BusPassengerModel.init() + CharterPassengerModel.init() // 定位监听 - BusPassengerModel.setControllerStatusCallback(TAG,this) + CharterPassengerModel.setControllerStatusCallback(TAG,this) //BusPassengerModel.setMoGoAutopilotPlanningListener(this) } override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - BusPassengerModel.setControllerStatusCallback(TAG,null) + CharterPassengerModel.setControllerStatusCallback(TAG,null) } private fun setSpeed(speed:Float){ UiThreadHandler.post {