[routing]

[fea]
[bus、接驳、班车 验路模式 站点单独接口获取]
This commit is contained in:
yangyakun
2025-05-26 11:46:33 +08:00
parent b7fda50dd5
commit 8bee9a4403
3 changed files with 57 additions and 77 deletions

View File

@@ -168,6 +168,15 @@ data class SaveGrayContrailErrorReasons(
var noteCodes: MutableList<String>,
) //feedback 1:成功 2:失败
/**
* 小巴、接驳、班车 获取站点的参数
*/
data class QuerySitesReasons(
var lineId: Long, // 线路id
var businessType: Int,// 业务模式
)
enum class EndGrayTaskFeedbackType(var type: Int) {
USABLE_YES(1),
USABLE_NO(2)
@@ -181,6 +190,8 @@ data class BindLineListResponse(val data: List<Result>?) : BaseData() {
)
}
data class SitesInfo(val data: List<RoutingSite>?) : BaseData()

View File

@@ -7,7 +7,9 @@ import com.mogo.och.biz.routing.bean.BindLineListResponse
import com.mogo.och.biz.routing.bean.QueryGrayContrailListRsp
import com.mogo.och.biz.routing.bean.QueryPointErrorReasonsRsp
import com.mogo.och.biz.routing.bean.QueryRoutingContrailByIdRsp
import com.mogo.och.biz.routing.bean.QuerySitesReasons
import com.mogo.och.biz.routing.bean.SaveGrayContrailErrorReasons
import com.mogo.och.biz.routing.bean.SitesInfo
import com.mogo.och.biz.routing.bean.StartGrayContrailTaskReq
import com.mogo.och.biz.routing.bean.StartGrayContrailTaskRsp
import io.reactivex.Observable
@@ -87,25 +89,14 @@ interface RoutingServiceApi {
): Observable<BaseData>
/**
* 查询车辆配置的所有路线
* @param appId
* @param ticket
* @param sn
* @return
*/
@GET("/och-vehicle/public/car/queryBindLineListBySn")
fun queryBindLineListBySn(
@Header("appId") appId: String?,
@Header("ticket") ticket: String?,
@Query("sn") sn: String?
): Observable<BindLineListResponse?>?
@GET("/och-shuttle-cabin/api/business/v1/driver/queryBindLineListBySn")
fun daliQueryBindLineListBySn(
@Header("appId") appId: String?,
@Header("ticket") ticket: String?,
@Query("sn") sn: String?
): Observable<BindLineListResponse?>?
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/och-vehicle/api/line/querySiteListByLine")
fun querySiteListByLine(
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
@Header("ticket") ticket: String = SharedPrefsMgr.getInstance().token,
@Body data: QuerySitesReasons
): Observable<SitesInfo>
}

View File

@@ -1,8 +1,6 @@
package com.mogo.och.biz.routing.net
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.env.ProjectUtils
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.config.FunctionBuildConfig
@@ -12,11 +10,10 @@ import com.mogo.och.biz.routing.bean.EndGrayContrailTaskReq
import com.mogo.och.biz.routing.bean.GrayLineBean
import com.mogo.och.biz.routing.bean.QueryGrayContrailListRsp
import com.mogo.och.biz.routing.bean.QueryPointErrorReasonsRsp
import com.mogo.och.biz.routing.bean.QueryRoutingContrailByIdRsp
import com.mogo.och.biz.routing.bean.QuerySitesReasons
import com.mogo.och.biz.routing.bean.SaveGrayContrailErrorReasons
import com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp
import com.mogo.och.biz.routing.bean.StartGrayContrailTaskReq
import com.mogo.och.biz.routing.bean.StartGrayContrailTaskRsp
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
@@ -25,7 +22,6 @@ import com.mogo.och.common.module.network.interceptor.transformTry
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.weaknet.repository.db.exception.NetDataException
import io.reactivex.Observable
import io.reactivex.functions.BiFunction
object RoutingServiceManager {
@@ -96,61 +92,43 @@ object RoutingServiceManager {
||AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)
||AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)
) {
val querySites = if(ProjectUtils.isSaas()) {
mRoutingServiceApi.queryBindLineListBySn(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
SharedPrefsMgr.getInstance().sn
val request = QuerySitesReasons(grayLineBean.lineId?:0,
LoginStatusManager.getOchBizInfo()?.businessType?:11)
val querySites = mRoutingServiceApi.querySiteListByLine(data = request)
Observable.zip(requestContral,startRouting,querySites) { t1, t2, t3 ->
if ((t1.code != 0 && t1.code != 200) || t1.data == null) {
throw NetDataException(t1.code, "${t1.msg}_queryCabinContrailById")
}
if (t2.code != 0 && t2.code != 200 || t2.data == null) {
throw NetDataException(t2.code, "${t2.msg}_saveFeedback")
}
if (t3.code != 0 && t3.code != 200 || t3.data.isNullOrEmpty()) {
throw NetDataException(t3.code, "${t3.msg}_saveFeedback")
}
val stationList = mutableListOf<BusStationBean>()
t3.data.let { lineList->
lineList.forEach {
stationList.add(it.toBusStationBean())
}
}
val result = StartGrayAndQueryContrailRsp(
taskId = t2.data!!,
contrail = t1.data,
grayLineBean = grayLineBean,
stationList = stationList
)
}else if(ProjectUtils.isDali()){
mRoutingServiceApi.queryBindLineListBySn(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
SharedPrefsMgr.getInstance().sn
result.code = t1.code
result.msg = t1.msg
result
}.transformTry()
.subscribe(
OchCommonSubscribeImpl(
context,
callback,
"startGrayTaskAndQueryRoutingContrail"
)
)
}else{
null
}
querySites?.let { querysites->
Observable.zip(requestContral,startRouting,querysites) { t1, t2, t3 ->
if ((t1.code != 0 && t1.code != 200) || t1.data == null) {
throw NetDataException(t1.code, "${t1.msg}_queryCabinContrailById")
}
if (t2.code != 0 && t2.code != 200 || t2.data == null) {
throw NetDataException(t2.code, "${t2.msg}_saveFeedback")
}
if (t3.code != 0 && t3.code != 200 || t3.data == null) {
throw NetDataException(t3.code, "${t3.msg}_saveFeedback")
}
val stationList = mutableListOf<BusStationBean>()
t3.data.let { lineList->
val info = lineList.filter {
it.line?.lineId==grayLineBean.lineId
}
if(info.isNotEmpty()){
info.first().siteList?.let { it1 -> stationList.addAll(it1) }
}else{
throw NetDataException(t3.code, "${t3.msg}_queryBindLineListBySn _ 未找到线路")
}
}
val result = StartGrayAndQueryContrailRsp(
taskId = t2.data!!,
contrail = t1.data,
grayLineBean = grayLineBean,
stationList = stationList
)
result.code = t1.code
result.msg = t1.msg
result
}.transformTry()
.subscribe(
OchCommonSubscribeImpl(
context,
callback,
"startGrayTaskAndQueryRoutingContrail"
)
)
}
}else if(AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)){
Observable.zip(requestContral,startRouting) { t1, t2 ->
if ((t1.code != 0 && t1.code != 200)||t1.data==null) {