[3.2.0] 包车司机端增加到站接口、同步报站屏信息

This commit is contained in:
wangmingjun
2023-05-05 15:49:21 +08:00
parent a31df5ea07
commit d98396bb69
7 changed files with 77 additions and 26 deletions

View File

@@ -5,3 +5,5 @@ package com.magic.mogo.och.charter.bean
* @date: 2023/2/23
*/
data class Station(var siteId: Int, var siteName: String, var seq: Int)
data class ArriveDestRequest(val sn:String, val lineId:Long,val writtenVersion:Long)

View File

@@ -10,6 +10,7 @@ import com.magic.mogo.och.charter.R
import com.magic.mogo.och.charter.base.CharterBaseFragment
import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse
import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse.Result.Companion.ARRIVED
import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse.Result.Companion.ARRIVING
import com.magic.mogo.och.charter.constant.CharterConst.Companion.LOOP_PERIOD_60S
import com.magic.mogo.och.charter.net.login.LoginDriverM1Impl
import com.magic.mogo.och.charter.presenter.DriverM1Presenter
@@ -91,7 +92,7 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
driverm1StationName1Tv.text = orderStatus.startSiteName
driverm1StationName2Tv.text = orderStatus.siteName
}
if (orderStatus.arriveStatus == ARRIVED){
if (orderStatus.arriveStatus == ARRIVING){
setArrivedClickable(true)
}else{
setArrivedClickable(false)

View File

@@ -229,14 +229,13 @@ class DriverM1Model {
val changeDestMsg = GsonUtils.fromJson(String(byteArray),
ChangeDestMsg::class.java) as ChangeDestMsg
currentChangeDestMsg = changeDestMsg
showChangerDestCommitDialog(changeDestMsg)
}else if (msg.type == DPMsgType.TYPE_ARRIVEDEST_STATUS.type){ //乘客屏到站同步
val arriveDestMsg = GsonUtils.fromJson(String(byteArray),
ArriveDestMsg::class.java) as ArriveDestMsg
// 2、到站同步
sendMsgToClient(arriveDestMsg)
}
if (changeDestMsg.arriveStatus == 2){//到站
// 2、到站同步
sendMsgToClient(changeDestMsg)
}else{ //切换目的地
showChangerDestCommitDialog(changeDestMsg)
}
}
d(SceneConstant.M_CHARTER_D,"onReceivedMsg = "+ GsonUtils.toJson(msg))
}catch (e: Exception){
d(SceneConstant.M_CHARTER_D,"onReceivedMsg = "+"消息解析错误")
@@ -397,11 +396,53 @@ class DriverM1Model {
}
private fun onArriveAt() {
isArrivedStation = true
d(SceneConstant.M_CHARTER_D + TAG, "onArriveAt = " + GsonUtil.jsonFromObject(mCurrentOrder))
if (isArrivedStation) return
if (mCurrentOrder == null) return
d(SceneConstant.M_CHARTER_D + TAG, "onArriveAt = " + GsonUtil.jsonFromObject(mCurrentOrder))
//到站接口请求
mContext?.let {
DriverM1ServiceManager.arriveDest(
it, mCurrentOrder!!.lineId.toLong(),DateTimeUtil.getCurrentTimeStamp()
,object :OchCommonServiceCallback<BaseData>{
override fun onSuccess(data: BaseData?) {
d(SceneConstant.M_CHARTER_D + TAG, "onArriveAt = " + GsonUtil.jsonFromObject(data))
if (data?.code == 0){
onArriveAtSuccess()
}
}
override fun onFail(code: Int, msg: String?) {
d(SceneConstant.M_CHARTER_D + TAG, "onArriveAt = onFail= $code,$msg" )
}
})
}
}
private fun onArriveAtSuccess() {
isArrivedStation = true
CharterSendTripInfoManager.sendCharterTripInfo(ARRIVE_STATION,mCurrentOrder?.lineName!!
,mCurrentOrder?.startSiteName!!,mCurrentOrder?.siteName!!,false)
if (currentChangeDestMsg == null){
mCurrentOrder?.let {
currentChangeDestMsg = ChangeDestMsg(
mCurrentOrder!!.lineId
,mCurrentOrder!!.lineName
, mCurrentOrder!!.startSiteId
,mCurrentOrder!!.startSiteName
,mCurrentOrder!!.siteId
,mCurrentOrder!!.siteName
,true
,2
,DateTimeUtil.getCurrentTimeStamp())
}
}
currentChangeDestMsg?.arriveStatus = 2
sendMsgToClient(currentChangeDestMsg)
}
/**
@@ -554,6 +595,7 @@ class DriverM1Model {
}
private fun sendMsgToClient(msg: BaseDPMsg?){
d(SceneConstant.M_CHARTER_D + TAG, "sendMsgToClient" + GsonUtils.toJson(msg))
sendMsgToAllClients(
OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(msg).toByteArray()
@@ -744,7 +786,6 @@ class DriverM1Model {
}
fun onAutopilotArriveAtStation() {
if (isArrivedStation) return
onArriveAt()
}

View File

@@ -75,6 +75,15 @@ object DriverM1ServiceManager {
?.subscribe(OchCommonSubscribeImpl(context!!, callback, "changeDest"))
}
fun arriveDest(context: Context,lindId: Long ,writtenVersion:Long
,callback: OchCommonServiceCallback<BaseData>?){
mDriverM1ServiceApi.arriveDest(MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
ArriveDestRequest(MoGoAiCloudClientConfig.getInstance().sn,lindId,writtenVersion)
).transformTry()
.subscribe(OchCommonSubscribeImpl(context!!, callback, "arriveDest"))
}
fun checkoutContrail(context: Context?,lineId: Int,
callback: OchCommonServiceCallback<QueryRoutesResponse>?){
mDriverM1ServiceApi.checkoutContrail(MoGoAiCloudClientConfig.getInstance().serviceAppId,

View File

@@ -1,6 +1,7 @@
package com.magic.mogo.och.charter.net
import com.magic.mogo.och.charter.bean.*
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.BaseData
import io.reactivex.Observable
import retrofit2.http.*
@@ -56,4 +57,13 @@ interface IDriverM1Service {
@Query("sn") sn: String?
,@Query("lineId") lineId:Int): Observable<QueryRoutesResponse>?
/**
* 到达目的地
*/
@POST("/och-rental-cabin/api/flow/v1/driver/arriveDest")
fun arriveDest(
@Header("appId") appId: String,
@Header("ticket") ticket: String,
@Body request: ArriveDestRequest
): Observable<BaseData>
}

View File

@@ -6,7 +6,7 @@ package com.mogo.och.common.module.bean.dpmsg
*/
enum class DPMsgType(val type: Int) {
TYPE_COMMON(0), //常规
TYPE_CHANGE_DEST(1),// 变更目的地确认
TYPE_CHANGE_DEST(1),// 变更目的地确认/到站
TYPE_OPEN_CLOSE_DOOR(2),//开关门
TYPE_ORDER_CLOSED(3), // 订单结束
TYPE_TASK_DETAILS(4), //路线任务详情

View File

@@ -28,18 +28,6 @@ data class ChangeDestMsg(
var writtenVersion:Long?, //版本标记
): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type)
data class ArriveDestMsg(
var orderNo: String, //订单id
var lineId: Int, //线路id
var lineName: String = "", //线路名称
var startSiteId: Int= 0, //当前站点
var startSiteName: String = "",
var destSiteId: Int= 0, //目的地
var destSiteName: String = "",
var arriveStatus:Int?, //1:未到达 2:到达
var writtenVersion:Long?, //版本标记
): BaseDPMsg(DPMsgType.TYPE_ARRIVEDEST_STATUS.type)
data class EndOrderMsg(
var orderNo: String, //订单id
): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED_BY_M1_STATUS.type)
@@ -53,7 +41,7 @@ data class DPOperateDoorMsg(
): BaseDPMsg(DPMsgType.TYPE_OPEN_CLOSE_DOOR.type)
data class DPOrderClosedMsg(
var closed: Boolean = true // true: 开门, false: 关门
var closed: Boolean = true // true: 结束
): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type)
data class AppConnectMsg(var isViewShow: Boolean, var isPlay: Boolean, var msg: String,