[1.1.2]
[rename]
This commit is contained in:
yangyakun
2023-02-25 18:03:16 +08:00
parent 823fbcaf3d
commit d590eb5717
7 changed files with 68 additions and 31 deletions

View File

@@ -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
)
}

View File

@@ -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?,//乘客手机号

View File

@@ -8,9 +8,9 @@ import java.util.*
*/
data class SiteInfoResponse(val data: List<SiteInfo>?) : 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?,//高精坐标

View File

@@ -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<String, IBusPassengerControllerStatusCallback>()
// 当前位置坐标
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<M1DriverLoginStatusResponse> {
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<LineInfoResponse.LineInfo, SiteInfoResponse.SiteInfo>? {
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<LocusResponse> {
mContext, lindId = lineId.toString(), object : OchCommonServiceCallback<LocusResponse> {
override fun onSuccess(data: LocusResponse?) {
if (data?.data == null) return
//设置全局轨迹信息
@@ -384,6 +417,7 @@ object BusPassengerModel {
private fun endCalculateDistanceLoop() {
BusPassengerModelLoopManager.removeLoopFunction(TAGDISTANCE)
}
/**
* 查询车辆状态 判断订单是否结束是否显示结束业务
*/

View File

@@ -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<V : IView?>(view: V) :
Presenter<V>(view) {
@@ -18,6 +17,11 @@ abstract class BusBasePassengerFunctionDevicePresenter<V : IView?>(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
}

View File

@@ -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?) {

View File

@@ -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 {