From 8bee9a440346a1cfaa38827b16ee43e11fd5d3a1 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 26 May 2025 11:46:33 +0800 Subject: [PATCH] =?UTF-8?q?[routing]=20[fea]=20[bus=E3=80=81=E6=8E=A5?= =?UTF-8?q?=E9=A9=B3=E3=80=81=E7=8F=AD=E8=BD=A6=20=E9=AA=8C=E8=B7=AF?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=20=E7=AB=99=E7=82=B9=E5=8D=95=E7=8B=AC?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=8E=B7=E5=8F=96]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/biz/routing/bean/RoutingBean.kt | 11 +++ .../och/biz/routing/net/RoutingServiceApi.kt | 29 ++---- .../biz/routing/net/RoutingServiceManager.kt | 94 +++++++------------ 3 files changed, 57 insertions(+), 77 deletions(-) diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/bean/RoutingBean.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/bean/RoutingBean.kt index c758b12848..b2dcbd8beb 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/bean/RoutingBean.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/bean/RoutingBean.kt @@ -168,6 +168,15 @@ data class SaveGrayContrailErrorReasons( var noteCodes: MutableList, ) //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?) : BaseData() { ) } +data class SitesInfo(val data: List?) : BaseData() + diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/net/RoutingServiceApi.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/net/RoutingServiceApi.kt index 07408228a7..ae6a69c90c 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/net/RoutingServiceApi.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/net/RoutingServiceApi.kt @@ -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 - /** - * 查询车辆配置的所有路线 - * @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? - @GET("/och-shuttle-cabin/api/business/v1/driver/queryBindLineListBySn") - fun daliQueryBindLineListBySn( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Query("sn") sn: String? - ): Observable? + @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 + } \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/net/RoutingServiceManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/net/RoutingServiceManager.kt index c6c752ba44..e46f2c749b 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/net/RoutingServiceManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/net/RoutingServiceManager.kt @@ -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() + 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() - 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) {