[1.0.0] 增加接驳车

This commit is contained in:
wangmingjun
2023-01-05 16:04:04 +08:00
parent dbf2f2e50b
commit 4f29f4b358
24 changed files with 1755 additions and 111 deletions

View File

@@ -17,7 +17,7 @@ import retrofit2.http.Query;
*
* Bus乘客端接口定义
*/
interface BusPassengerServiceApi {
interface PassengerServiceApi {
/**
* 查询bus司机端绑定路线
* @return 接口返回数据

View File

@@ -18,7 +18,7 @@ import com.mogo.och.common.module.biz.network.interceptor.transformTry
object BusPassengerServiceManager {
private var mBusPassengerServiceApi = MoGoRetrofitFactory.getInstance(getBaseUrl())
.create(BusPassengerServiceApi::class.java)
.create(PassengerServiceApi::class.java)
/**
* 获取Bus司机端的sn

View File

@@ -0,0 +1,40 @@
package com.mogo.och.bus.passenger.network;
import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse;
import com.mogo.och.bus.passenger.bean.BusPassengerQueryLineRequest;
import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResponse;
import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* Created on 2022/3/31
*
* Bus乘客端接口定义
*/
interface BusPassengerServiceApi {
/**
* 查询bus司机端绑定路线
* @return 接口返回数据
*/
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/och-shuttle-cabin/api/business/v1/passenger/lineDataWithDriver/query" )
Observable<BusPassengerRoutesResponse> queryDriverSiteByCoordinate(@Header("appId") String appId, @Header("ticket") String ticket, @Body BusPassengerQueryLineRequest request);
/**
* 查询司机端的登陆状态
* @param sn
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
// @GET("/autopilot-car-hailing/car/v2/driver/bus/passenger/takeOrderStatus/query")
@GET("/och-shuttle-cabin/api/business/v1/passenger/loginStatus")
Observable<BusPassengerOperationStatusResponse> queryDriverOperationStatus(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
}

View File

@@ -0,0 +1,25 @@
package com.mogo.och.bus.constant
import com.mogo.commons.debug.DebugConfig
/**
* Created on 2021/12/6
*/
class URLConst {
companion object {
private const val BASE_URL_OCH_DEV = "http://tech-dev.zhidaohulian.com"
private const val BASE_URL_OCH_QA = "https://tech-qa.zhidaohulian.com"
private const val BASE_URL_OCH_RELEASE = "https://tech.zhidaohulian.com"
@JvmStatic
fun getBaseUrl(): String {
return when (DebugConfig.getNetMode()) {
DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV
DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA
DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE
else -> BASE_URL_OCH_RELEASE
}
}
}
}

View File

@@ -48,7 +48,7 @@ import com.mogo.och.bus.callback.IPassengerCallback;
import com.mogo.och.bus.callback.IRefreshBusStationsCallback;
import com.mogo.och.bus.callback.ISlidePannelHideCallback;
import com.mogo.och.bus.constant.BusConst;
import com.mogo.och.bus.net.BusServiceManager;
import com.mogo.och.bus.net.OrderServiceManager;
import com.mogo.och.bus.presenter.BusModelLoopManager;
import com.mogo.och.bus.util.BusAnalyticsManager;
import com.mogo.och.bus.util.BusSendTripInfoManager;
@@ -85,13 +85,13 @@ import mogo.telematics.pad.MessagePad;
* <p>
* 小巴订单管理
*/
public class BusOrderModel {
private final String TAG = BusOrderModel.class.getSimpleName();
public class OrderModel {
private final String TAG = OrderModel.class.getSimpleName();
private int currentLineId = -1;
private int currentTaskId = -1;
private int backgroundCurrentStationIndex = 0;//A->B 此处值是A站点索引
private static volatile BusOrderModel sInstance;
private static volatile OrderModel sInstance;
public double mLongitude = 0;
public double mLatitude = 0;
private Context mContext;
@@ -132,18 +132,18 @@ public class BusOrderModel {
}
});
public static BusOrderModel getInstance() {
public static OrderModel getInstance() {
if (sInstance == null) {
synchronized (BusOrderModel.class) {
synchronized (OrderModel.class) {
if (sInstance == null) {
sInstance = new BusOrderModel();
sInstance = new OrderModel();
}
}
}
return sInstance;
}
private BusOrderModel() {
private OrderModel() {
}
@@ -307,7 +307,7 @@ public class BusOrderModel {
BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
BusServiceManager.updateOrderRoute(mContext, currentLineId, currentStation.getSiteId()
OrderServiceManager.updateOrderRoute(mContext, currentLineId, currentStation.getSiteId()
, nextStation.getSiteId(), points, new OchCommonServiceCallback<BaseData>() {
@Override
public void onSuccess(BaseData o) {
@@ -426,7 +426,7 @@ public class BusOrderModel {
*/
public void queryBusRoutes() {
CallerLogger.INSTANCE.d(M_BUS + TAG, "查询小巴路线");
BusServiceManager.queryBusRoutes(mContext, new OchCommonServiceCallback<BusRoutesResponse>() {
OrderServiceManager.queryBusRoutes(mContext, new OchCommonServiceCallback<BusRoutesResponse>() {
@Override
public void onSuccess(BusRoutesResponse data) {
if (data == null
@@ -528,7 +528,7 @@ public class BusOrderModel {
*/
public void abortTask() {
CallerLogger.INSTANCE.d(M_BUS + TAG, "结束当前路线abortTask");
BusServiceManager.abortTask(mContext, currentTaskId
OrderServiceManager.abortTask(mContext, currentTaskId
, new OchCommonServiceCallback<BaseData>() {
@Override
public void onSuccess(BaseData o) {
@@ -664,7 +664,7 @@ public class BusOrderModel {
String departureStopName = stationList.get(backgroundCurrentStationIndex).getName();
CallerLogger.INSTANCE.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex);
BusServiceManager.arriveSiteStation(mContext,
OrderServiceManager.arriveSiteStation(mContext,
stationList.get(arrivedStationIndex).getSeq(),
stationList.get(arrivedStationIndex).getSiteId(),
currentTaskId,
@@ -735,7 +735,7 @@ public class BusOrderModel {
}
final String currentStationName = stationList.get(backgroundCurrentStationIndex).getName();
String finalNextStationName = nextStationName;
BusServiceManager.leaveStation(mContext,
OrderServiceManager.leaveStation(mContext,
stationList.get(backgroundCurrentStationIndex).getSeq(),
stationList.get(backgroundCurrentStationIndex).getSiteId(),
currentTaskId,
@@ -1008,7 +1008,7 @@ public class BusOrderModel {
*/
private void endTask() {
CallerLogger.INSTANCE.d(M_BUS + TAG, "任务正常走完endTask()");
BusServiceManager.endTask(mContext, currentTaskId
OrderServiceManager.endTask(mContext, currentTaskId
, new OchCommonServiceCallback<BaseData>() {
@Override
public void onSuccess(BaseData o) {
@@ -1086,7 +1086,7 @@ public class BusOrderModel {
// 车机端上传心跳数据只在出车状态时上传
public void runCarHeartbeat() {
BusServiceManager.runCarHeartbeat(mContext, mLongitude, mLatitude,
OrderServiceManager.runCarHeartbeat(mContext, mLongitude, mLatitude,
new OchCommonServiceCallback<BaseData>() {
@Override
public void onSuccess(BaseData data) {

View File

@@ -30,7 +30,7 @@ import retrofit2.http.Query;
* <p>
* wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
*/
public interface IBusApiService {
public interface IBascApiService {
/**
* 根据车机坐标获取所在区域全部站点信息
*

View File

@@ -1,11 +1,11 @@
package com.mogo.och.bus.net
import android.content.Context
import com.mogo.och.bus.constant.BusConst.Companion.getBaseUrl
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.och.bus.bean.*
import com.mogo.och.bus.constant.URLConst.Companion.getBaseUrl
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.biz.network.interceptor.transformTry
@@ -14,10 +14,10 @@ import com.mogo.och.common.module.biz.network.interceptor.transformTry
* @author: wangmingjun
* @date: 2021/10/20
*/
object BusServiceManager {
object OrderServiceManager {
private val mService: IBusApiService = MoGoRetrofitFactory.getInstance(getBaseUrl()).create(
IBusApiService::class.java
private val M_SERVICE: IBascApiService = MoGoRetrofitFactory.getInstance(getBaseUrl()).create(
IBascApiService::class.java
)
/**
@@ -28,7 +28,7 @@ object BusServiceManager {
@JvmStatic
fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback<BusRoutesResponse>?) {
//获取当前高德坐标
mService.queryBusRoutes(
M_SERVICE.queryBusRoutes(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusQueryLineStationsRequest()
@@ -49,7 +49,7 @@ object BusServiceManager {
taskId: Int,
callback: OchCommonServiceCallback<BusRoutesResponse>?
) {
mService.switchLine(
M_SERVICE.switchLine(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusResetDrivingLineRequest(taskId)
@@ -66,7 +66,7 @@ object BusServiceManager {
*/
@JvmStatic
fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
mService.abortTask(
M_SERVICE.abortTask(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusCloseTaskRequest(taskId)
@@ -83,7 +83,7 @@ object BusServiceManager {
*/
@JvmStatic
fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
mService.endTask(
M_SERVICE.endTask(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusCloseTaskRequest(taskId)
@@ -107,7 +107,7 @@ object BusServiceManager {
taskId: Int,
callback: OchCommonServiceCallback<BaseData>?
) {
mService.leaveStation(
M_SERVICE.leaveStation(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusUpdateSiteStatusRequest(taskId, siteId, seq)
@@ -128,7 +128,7 @@ object BusServiceManager {
context: Context, seq: Int, siteId: Int, taskId: Int,
callback: OchCommonServiceCallback<BaseData>?
) {
mService.arriveSiteStation(
M_SERVICE.arriveSiteStation(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusUpdateSiteStatusRequest(taskId, siteId, seq)
@@ -151,7 +151,7 @@ object BusServiceManager {
siteId: Int,
callback: OchCommonServiceCallback<QueryLeaveAwayPassengersResponse>?
) {
mService.queryStationLeaveAwayPassengers(
M_SERVICE.queryStationLeaveAwayPassengers(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
QueryLeaveAwayPassengersRequest(seq, siteId)
@@ -174,7 +174,7 @@ object BusServiceManager {
prePassengerTime: Long,
callback: OchCommonServiceCallback<BusQueryWriteOffPassengersResponse>?
) {
mService.queryWriteOffPassengers(
M_SERVICE.queryWriteOffPassengers(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusWriteOffPassengersQueryRequest(taskId, siteId, prePassengerTime)
@@ -190,7 +190,7 @@ object BusServiceManager {
*/
@JvmStatic
fun queryBusOrders(context: Context, callback: OchCommonServiceCallback<BusOrdersResponse>?) {
mService.queryBusOrders(
M_SERVICE.queryBusOrders(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
MoGoAiCloudClientConfig.getInstance().sn
@@ -200,7 +200,7 @@ object BusServiceManager {
}
@JvmStatic
fun queryBusLines(context: Context, callback: OchCommonServiceCallback<BusQueryLinesResponse>?) {
mService.queryBusLines(
M_SERVICE.queryBusLines(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
MoGoAiCloudClientConfig.getInstance().sn
@@ -214,7 +214,7 @@ object BusServiceManager {
lineId: String?,
callback: OchCommonServiceCallback<BusQueryLineTaskResponse>?
) {
mService.queryBusTaskByLineId(
M_SERVICE.queryBusTaskByLineId(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
lineId
@@ -231,7 +231,7 @@ object BusServiceManager {
points: List<BusRoutePlanningUpdateReqBean.Result?>?,
callback: OchCommonServiceCallback<BaseData>?
) {
mService.updateOrderRoute(
M_SERVICE.updateOrderRoute(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusRoutePlanningUpdateReqBean(
@@ -254,7 +254,7 @@ object BusServiceManager {
context: Context, lon: Double, lat: Double,
callback: OchCommonServiceCallback<BaseData>?
) {
mService.runCarHeartbeat(
M_SERVICE.runCarHeartbeat(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
CarHeartbeatReqBean(

View File

@@ -7,21 +7,6 @@ import com.mogo.commons.debug.DebugConfig
*/
class BusConst {
companion object {
private const val BASE_URL_OCH_DEV = "http://tech-dev.zhidaohulian.com"
private const val BASE_URL_OCH_QA = "https://tech-qa.zhidaohulian.com"
private const val BASE_URL_OCH_RELEASE = "https://tech.zhidaohulian.com"
@JvmStatic
fun getBaseUrl(): String {
return when (DebugConfig.getNetMode()) {
DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV
DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA
DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE
else -> BASE_URL_OCH_RELEASE
}
}
// OCH arouter 路由path
const val PATH = "/och/api"

View File

@@ -4,9 +4,7 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS
import static com.mogo.och.bus.constant.BusConst.TIMER_START_AUTOPILOT_INTERVAL;
import android.animation.ObjectAnimator;
import android.content.Intent;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -21,12 +19,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.Group;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.mvp.IView;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.config.HmiBuildConfig;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
@@ -35,26 +30,21 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListener
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.function.hmi.ui.widget.TrafficDataView;
import com.mogo.eagle.core.function.v2x.events.scenario.scene.airoad.AiRoadMarker;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.map.MogoMapUIController;
import com.mogo.map.MogoMarkerManager;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.uicontroller.VisualAngleMode;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener;
import com.mogo.och.bus.R;
import com.mogo.och.bus.bean.BusRoutesResult;
import com.mogo.och.bus.constant.BusConst;
import com.mogo.och.bus.model.BusOrderModel;
import com.mogo.och.bus.model.OrderModel;
import com.mogo.och.bus.util.BDRouteDataTestUtils;
import com.mogo.och.bus.view.SlidePanelView;
import com.mogo.och.common.module.utils.SoundPoolHelper;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.ThreadMode;
import mogo.telematics.pad.MessagePad;
import record_cache.RecordPanelOuterClass;
@@ -544,7 +534,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
if (busTestBar.getVisibility() == View.VISIBLE) {
busTestBar.setVisibility(View.GONE);
} else {
BusRoutesResult routesResult = BusOrderModel.getInstance().getBusRoutesResult();
BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
lineIdTV.setText("lineId:" + (routesResult == null ? "" : String.valueOf(routesResult.getLineId())));
trajMd5TV.setText("TMd5:" + (routesResult == null ? "" : routesResult.csvFileMd5));
stopMd5TV.setText("SMd5:" + (routesResult == null ? "" : routesResult.txtFileMd5));
@@ -556,7 +546,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
public void updateBusTestBarInfo() {
if (busTestBar != null && busTestBar.getVisibility() == View.VISIBLE) {
BusRoutesResult routesResult = BusOrderModel.getInstance().getBusRoutesResult();
BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
lineIdTV.setText("lineId:" + (routesResult == null ? "" : String.valueOf(routesResult.getLineId())));
trajMd5TV.setText("TMd5:" + (routesResult == null ? "" : routesResult.csvFileMd5));
stopMd5TV.setText("SMd5:" + (routesResult == null ? "" : routesResult.txtFileMd5));

View File

@@ -11,9 +11,8 @@ import com.mogo.och.bus.bean.BusQueryLineTaskResponse;
import com.mogo.och.bus.bean.BusQueryLinesResponse;
import com.mogo.och.bus.bean.BusRoutesResponse;
import com.mogo.och.bus.callback.IBusLinesCallback;
import com.mogo.och.bus.net.BusServiceManager;
import com.mogo.och.bus.net.OrderServiceManager;
import com.mogo.och.bus.ui.BusSwitchLineActivity;
import com.mogo.och.bus.util.BusSendTripInfoManager;
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
/**
@@ -44,7 +43,7 @@ public class BusLineModel {
mBusLinesCallback = callback;
}
public void queryBusLines(){
BusServiceManager.queryBusLines(mContext, new OchCommonServiceCallback<BusQueryLinesResponse>() {
OrderServiceManager.queryBusLines(mContext, new OchCommonServiceCallback<BusQueryLinesResponse>() {
@Override
public void onSuccess(BusQueryLinesResponse data) {
if (null == data && mBusLinesCallback != null) {
@@ -83,7 +82,7 @@ public class BusLineModel {
* @param position 位置
*/
public void queryBusLineTasksById(int lineId, int position,boolean autoRefresh){
BusServiceManager.queryBusTaskByLineId(mContext, String.valueOf(lineId),new OchCommonServiceCallback<BusQueryLineTaskResponse>() {
OrderServiceManager.queryBusTaskByLineId(mContext, String.valueOf(lineId),new OchCommonServiceCallback<BusQueryLineTaskResponse>() {
@Override
public void onSuccess(BusQueryLineTaskResponse data) {
if (null == data && mBusLinesCallback != null) {
@@ -117,7 +116,7 @@ public class BusLineModel {
}
public void commitSwitchLineId(int taskId,int lineId){
BusServiceManager.switchLine(mContext,taskId, new OchCommonServiceCallback<BusRoutesResponse>() {
OrderServiceManager.switchLine(mContext,taskId, new OchCommonServiceCallback<BusRoutesResponse>() {
@Override
public void onSuccess(BusRoutesResponse o) {
SharedPrefs.getInstance(mContext).putInt(BusSwitchLineActivity.LASTCOMMITLINEID,lineId);

View File

@@ -11,7 +11,7 @@ import com.mogo.och.bus.bean.BusQueryLineTaskResponse;
import com.mogo.och.bus.bean.BusQueryLinesResponse;
import com.mogo.och.bus.callback.IBusLinesCallback;
import com.mogo.och.bus.model.BusLineModel;
import com.mogo.och.bus.model.BusOrderModel;
import com.mogo.och.bus.model.OrderModel;
import com.mogo.och.bus.ui.BusSwitchLineView;
import java.util.concurrent.TimeUnit;
@@ -30,7 +30,7 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
public BusLinePresenter(BusSwitchLineView view) {
super(view);
BusLineModel.getInstance().init();
BusOrderModel.getInstance().init();
OrderModel.getInstance().init();
}
@Override
@@ -61,7 +61,7 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
@Override
public void onChangeLineIdSuccess() {
BusOrderModel.getInstance().clearBusStationDatas();
OrderModel.getInstance().clearBusStationDatas();
runOnUIThread(() -> mView.onChangeLineIdSuccess());
}
@@ -91,7 +91,7 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
}
public void queryBusRoutes(){
BusOrderModel.getInstance().queryBusRoutes();
OrderModel.getInstance().queryBusRoutes();
}
@Override

View File

@@ -1,12 +1,10 @@
package com.mogo.och.bus.presenter;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
import static com.mogo.och.bus.constant.BusConst.LOOP_DELAY_500;
import static com.mogo.och.bus.constant.BusConst.LOOP_PASSENGER_5S;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.bus.constant.BusConst;
import com.mogo.och.bus.model.BusOrderModel;
import com.mogo.och.bus.model.OrderModel;
import java.util.concurrent.TimeUnit;
@@ -66,7 +64,7 @@ public class BusModelLoopManager {
.map((aLong -> aLong + 1))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> BusOrderModel.getInstance().runCarHeartbeat());
.subscribe(aLong -> OrderModel.getInstance().runCarHeartbeat());
}
public void stopHeartbeatLoop() {

View File

@@ -26,7 +26,7 @@ import com.mogo.och.bus.callback.IPassengerCallback;
import com.mogo.och.bus.callback.IRefreshBusStationsCallback;
import com.mogo.och.bus.callback.ISlidePannelHideCallback;
import com.mogo.och.bus.fragment.BusFragment;
import com.mogo.och.bus.model.BusOrderModel;
import com.mogo.och.bus.model.OrderModel;
import com.mogo.och.bus.util.BusTrajectoryManager;
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
import com.mogo.och.common.module.biz.callback.ILoginCallback;
@@ -62,7 +62,7 @@ public class BusPresenter extends Presenter<BusFragment>
super(view);
//2021.11.1 鹰眼架构整合由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口
CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this);
BusOrderModel.getInstance().init();
OrderModel.getInstance().init();
OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp());
}
@@ -75,48 +75,48 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void onDestroy(@NonNull LifecycleOwner owner) {
super.onDestroy(owner);
BusOrderModel.getInstance().release();
OrderModel.getInstance().release();
releaseListener();
}
public void initModelListener() {
BusOrderModel.getInstance().setRefreshBusStationsCallback(this);
BusOrderModel.getInstance().setSlidePanelHideCallback(this);
BusOrderModel.getInstance().setControllerStatusCallback(this);
BusOrderModel.getInstance().setPassengerCallback(this);
BusOrderModel.getInstance().setAdasStatusCallback(this);
OrderModel.getInstance().setRefreshBusStationsCallback(this);
OrderModel.getInstance().setSlidePanelHideCallback(this);
OrderModel.getInstance().setControllerStatusCallback(this);
OrderModel.getInstance().setPassengerCallback(this);
OrderModel.getInstance().setAdasStatusCallback(this);
}
public void releaseListener() {
BusOrderModel.getInstance().setRefreshBusStationsCallback(null);
BusOrderModel.getInstance().setSlidePanelHideCallback(null);
BusOrderModel.getInstance().setControllerStatusCallback(null);
BusOrderModel.getInstance().setPassengerCallback(null);
BusOrderModel.getInstance().setAdasStatusCallback(null);
OrderModel.getInstance().setRefreshBusStationsCallback(null);
OrderModel.getInstance().setSlidePanelHideCallback(null);
OrderModel.getInstance().setControllerStatusCallback(null);
OrderModel.getInstance().setPassengerCallback(null);
OrderModel.getInstance().setAdasStatusCallback(null);
OCHAdasAbilityManager.getInstance().release();
}
public void abortTask() {
BusOrderModel.getInstance().abortTask();
OrderModel.getInstance().abortTask();
}
public void autoDriveToNextStation() {
currentAutopilotStatus = -1;
BusOrderModel.getInstance().autoDriveToNextStation();
OrderModel.getInstance().autoDriveToNextStation();
// isRestartAutopilot = false;
}
public void restartAutopilot() {
if (BusOrderModel.getInstance().isGoingToNextStation()){
if (OrderModel.getInstance().isGoingToNextStation()){
currentAutopilotStatus = -1;
BusOrderModel.getInstance().restartAutopilot();
OrderModel.getInstance().restartAutopilot();
// isRestartAutopilot = true;
}
}
// 登出
public void logout() {
BusOrderModel.getInstance().logout();
OrderModel.getInstance().logout();
}
@Override
@@ -159,7 +159,7 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void onAutopilotArriveAtStation(MessagePad.ArrivalNotification arrivalNotification) {
CallerLogger.INSTANCE.e( M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive");
BusOrderModel.getInstance().onArriveAt(arrivalNotification);
OrderModel.getInstance().onArriveAt(arrivalNotification);
}
@Override
@@ -181,7 +181,7 @@ public class BusPresenter extends Presenter<BusFragment>
if (FunctionBuildConfig.isDemoMode
&& (
(mCurrentStation >= 0 && mCurrentStation <= mStationList.size() - 1)
&& BusOrderModel.getInstance().isGoingToNextStation()
&& OrderModel.getInstance().isGoingToNextStation()
)
) {
CallerLogger.INSTANCE.d(M_BUS + "BusOrderModel=", "有美化功能");
@@ -196,8 +196,8 @@ public class BusPresenter extends Presenter<BusFragment>
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING:
if (currentAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
currentAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING;
BusOrderModel.getInstance().triggerStartServiceEvent(
BusOrderModel.getInstance().isRestartAutopilot(), true);
OrderModel.getInstance().triggerStartServiceEvent(
OrderModel.getInstance().isRestartAutopilot(), true);
}
// 改变UI自动驾驶状态
runOnUIThread(() -> mView.onAutopilotStatusChanged(currentAutopilotStatus));
@@ -206,7 +206,7 @@ public class BusPresenter extends Presenter<BusFragment>
if (FunctionBuildConfig.isDemoMode
&& (
(mCurrentStation >= 0 && mCurrentStation <= mStationList.size() - 1)
&& BusOrderModel.getInstance().isGoingToNextStation()
&& OrderModel.getInstance().isGoingToNextStation()
)
) {
@@ -284,15 +284,15 @@ public class BusPresenter extends Presenter<BusFragment>
public void loginSuccess(DriverStatusQueryRespBean data) {
CallerLogger.INSTANCE.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin());
if(LoginStatusManager.isLogin()){
BusOrderModel.getInstance().startOrStopOrderLoop(true);
BusOrderModel.getInstance().queryBusRoutes();
OrderModel.getInstance().startOrStopOrderLoop(true);
OrderModel.getInstance().queryBusRoutes();
}else {
BusTrajectoryManager.getInstance().stopTrajReqLoop();
BusOrderModel.getInstance().startOrStopOrderLoop(false);
OrderModel.getInstance().startOrStopOrderLoop(false);
BusTrajectoryManager.getInstance().stopTrajReqLoop();
clearBusStationsMarkers();
mView.hideSlidePanel();
BusOrderModel.getInstance().closeBeautificationMode();
OrderModel.getInstance().closeBeautificationMode();
}
}

View File

@@ -1,6 +1,6 @@
package com.mogo.och.bus.util;
import com.mogo.och.bus.model.BusOrderModel;
import com.mogo.och.bus.model.OrderModel;
import org.json.JSONArray;
import org.json.JSONException;
@@ -37,7 +37,7 @@ public class BDRouteDataTestUtils {
builder.setLongitude(s.getDouble("lon"));
list.add(builder.build());
}
BusOrderModel.getInstance().debugUpdateOrderRoute(list);
OrderModel.getInstance().debugUpdateOrderRoute(list);
} catch (JSONException e) {
e.printStackTrace();
}

View File

@@ -2,7 +2,6 @@ package com.mogo.och.bus.util;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
import android.annotation.SuppressLint;
import android.text.TextUtils;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;

View File

@@ -8,7 +8,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
import com.mogo.och.bus.bean.BusRoutesResult;
import com.mogo.och.bus.constant.BusConst;
import com.mogo.och.bus.model.BusOrderModel;
import com.mogo.och.bus.model.OrderModel;
import com.zhidao.socket.utils.LoginStatusUtil;
import java.util.concurrent.TimeUnit;
@@ -49,10 +49,10 @@ public class BusTrajectoryManager {
* 同步Bus路线信息
*/
public void syncTrajectoryInfo() {
BusRoutesResult routesResult = BusOrderModel.getInstance().getBusRoutesResult();
BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
if (LoginStatusUtil.isLogin() && routesResult != null
&& BusOrderModel.getInstance().getCurrentStationIndex() == 0
&& !BusOrderModel.getInstance().isGoingToNextStation()) {
&& OrderModel.getInstance().getCurrentStationIndex() == 0
&& !OrderModel.getInstance().isGoingToNextStation()) {
CallerLogger.INSTANCE.d(M_BUS + TAG, "syncTrajectoryInfo() start.");
startTrajReqLoop();
} else {
@@ -96,7 +96,7 @@ public class BusTrajectoryManager {
}
private void setupAutoPilotLine() {
BusRoutesResult routesResult = BusOrderModel.getInstance().getBusRoutesResult();
BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
if (routesResult == null) {
CallerLogger.INSTANCE.e(M_BUS + TAG,
"setupAutoPilotLine(): routesResult is null.");

View File

@@ -0,0 +1,23 @@
package com.mogo.och.bus.bean;
import com.mogo.eagle.core.data.BaseData;
import java.util.List;
/**
* @author: wangmingjun
* @date: 2021/10/19
*/
public class BusOrdersResponse extends BaseData {
public Result data;
public static class Result{
public List<BusOrderBean> orders;
}
@Override
public String toString() {
return "BusOrdersResponse{" +
"data=" + data +
'}';
}
}

View File

@@ -0,0 +1,27 @@
package com.mogo.och.bus.bean;
import com.mogo.eagle.core.data.BaseData;
/**
* 网约车小巴路线接口请求响应结果
*
* @author tongchenfei
*/
public class BusRoutesResponse extends BaseData {
private BusRoutesResult data;
public BusRoutesResult getResult() {
return data;
}
public void setResult(BusRoutesResult data) {
this.data = data;
}
@Override
public String toString() {
return "BusRoutesResponse{" +
"data=" + data +
'}';
}
}

View File

@@ -0,0 +1,25 @@
package com.mogo.och.bus.constant
import com.mogo.commons.debug.DebugConfig
/**
* Created on 2021/12/6
*/
class URLConst {
companion object {
private const val BASE_URL_OCH_DEV = "http://och-driver-dev.zhidaozhixing.com"
private const val BASE_URL_OCH_QA = "https://och-driver-qa.zhidaozhixing.com"
private const val BASE_URL_OCH_RELEASE = "https://och-driver.zhidaozhixing.com"
@JvmStatic
fun getBaseUrl(): String {
return when (DebugConfig.getNetMode()) {
DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV
DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA
DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE
else -> BASE_URL_OCH_RELEASE
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,170 @@
package com.mogo.och.bus.net;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.bus.bean.BusCloseTaskRequest;
import com.mogo.och.bus.bean.BusOrdersResponse;
import com.mogo.och.bus.bean.BusQueryLineTaskResponse;
import com.mogo.och.bus.bean.BusQueryLinesResponse;
import com.mogo.och.bus.bean.BusRoutesResponse;
import com.mogo.och.bus.bean.BusQueryLineStationsRequest;
import com.mogo.och.bus.bean.QueryLeaveAwayPassengersRequest;
import com.mogo.och.bus.bean.QueryLeaveAwayPassengersResponse;
import com.mogo.och.bus.bean.BusResetDrivingLineRequest;
import com.mogo.och.bus.bean.BusUpdateSiteStatusRequest;
import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* 小巴车相关接口
*
* @author tongchenfei
* <p>
* wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
*/
public interface IBascApiService {
/**
* 根据车机坐标获取所在区域全部站点信息
*
* @param request 请求参数
* @return 接口返回数据 todo 修改返回结构
*/
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/och-shuttle-cabin/api/business/v1/driver/lineDataWithDriver/query" )
Observable<BusRoutesResponse> queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request);
/**
* @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的 不是重置线路中站点的
* @return 返回值是重置后的车站列表
* 开始路线
*/
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/och-shuttle-cabin/api/flow/v1/driver/startTask" )
Observable<BusRoutesResponse> switchLine(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetDrivingLineRequest request);
/**
* 离站,通知服务器
* @param request
* @return
*/
@Headers({"Content-Type:application/json;charset=UTF-8"})
@POST("/och-shuttle-cabin/api/flow/v1/driver/leave")
Observable<BaseData> leaveStation(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusUpdateSiteStatusRequest request);
/**
* 到站 更新到站信息
* @param request
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-shuttle-cabin/api/flow/v1/driver/arrive")
Observable< BaseData > arriveSiteStation(@Header ("appId") String appId,@Header("ticket") String ticket,@Body BusUpdateSiteStatusRequest request);
/**
* 到站查询下车乘客
* @param request
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-shuttle-cabin/api/business/v1/driver/siteArrivedOrders")
Observable< QueryLeaveAwayPassengersResponse > queryStationLeaveAwayPassengers(@Header ("appId") String appId,@Header("ticket") String ticket,@Body QueryLeaveAwayPassengersRequest request);
/**
*
* @param appId
* @param ticket
* @param sn
* @return todo 修改结构
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@GET("/och-shuttle-cabin/api/business/v1/driver/servicingOrders/query")
Observable<BusOrdersResponse> queryBusOrders(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
/**
* 查询车辆配置的所有路线
* @param appId
* @param ticket
* @param sn
* @return
*/
@GET("och-shuttle-cabin/api/business/v1/driver/bindLine/query")
Observable<BusQueryLinesResponse> queryBusLines(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
/**
* 查询路线当天的任务
* @param appId
* @param ticket
* @param lineId 线路id
* @return
*/
@GET("och-shuttle-cabin/api/business/v1/driver/task/query")
Observable<BusQueryLineTaskResponse> queryBusTaskByLineId(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("lineId") String lineId);
/**
* 中止任务
* @param appId
* @param ticket
* @param data
* @return
*/
@POST("/och-shuttle-cabin/api/flow/v1/driver/abortTask")
Observable<BaseData> abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
/**
* 任务正常跑完结束
* @param appId
* @param ticket
* @param data
* @return
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@POST("/och-shuttle-cabin/api/flow/v1/driver/endTask")
Observable<BaseData> endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
/**
* 获取手机验证码
*
* @return
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@POST( "/och-shuttle-cabin/api/sms/v1/driver/sendSms" )
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header("appId") String appId
, @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data);
/**
* 通过验证码登录
* @param appId
* @param ticket
* @param data
* @return
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@POST( "/och-shuttle-cabin/api/flow/v1/driver/startOperation" )
Observable<TaxiLoginRespBean> gotoLoginBycode4Bus(@Header("appId") String appId
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
/**
* 登出接口
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-shuttle-cabin/api/flow/v1/driver/endOperation")
Observable<BaseData> logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket,
@Body TaxiLogoutReqBean data);
/**
* 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端
* @param sn
* @return
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@GET( "/och-shuttle-cabin/api/business/v1/driver/loginStatus")
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Path(value = "flavor",encoded = true) String flavor,@Header ("appId") String appId
, @Header("ticket") String ticket, @Query("sn") String sn);
}

View File

@@ -0,0 +1,203 @@
package com.mogo.och.bus.net
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.och.bus.bean.*
import com.mogo.och.bus.constant.URLConst.Companion.getBaseUrl
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.biz.network.interceptor.transformTry
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object OrderServiceManager {
private val mService: IBascApiService = MoGoRetrofitFactory.getInstance(getBaseUrl()).create(
IBascApiService::class.java
)
/**
* 查询小巴车当前任务
* @param context
* @param callback
*/
@JvmStatic
fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback<BusRoutesResponse>?) {
//获取当前高德坐标
mService.queryBusRoutes(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusQueryLineStationsRequest()
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes"))
}
/**
* 重置线路站点
* @param context
* @param taskId
* @param callback
*/
@JvmStatic
fun switchLine(
context: Context,
taskId: Int,
callback: OchCommonServiceCallback<BusRoutesResponse>?
) {
mService.switchLine(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusResetDrivingLineRequest(taskId)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "switchLine"))
}
/**
* 中断当前任务
* @param context
* @param taskId
* @param callback
*/
@JvmStatic
fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
mService.abortTask(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusCloseTaskRequest(taskId)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "abortTask"))
}
/**
* 正常结束任务
* @param context
* @param taskId
* @param callback
*/
@JvmStatic
fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
mService.endTask(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusCloseTaskRequest(taskId)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "endTask"))
}
/**
* 离站上报
* @param context
* @param seq
* @param siteId
* @param callback
*/
@JvmStatic
fun leaveStation(
context: Context,
seq: Int,
siteId: Int,
taskId: Int,
callback: OchCommonServiceCallback<BaseData>?
) {
mService.leaveStation(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusUpdateSiteStatusRequest(taskId, siteId, seq)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation"))
}
/**
* 到站更新站点状态
* @param context
* @param seq
* @param siteId
* @param callback
*/
@JvmStatic
fun arriveSiteStation(
context: Context, seq: Int, siteId: Int, taskId: Int,
callback: OchCommonServiceCallback<BaseData>?
) {
mService.arriveSiteStation(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
BusUpdateSiteStatusRequest(taskId, siteId, seq)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation"))
}
/**
* 查询下车乘客
* @param context
* @param seq
* @param siteId
* @param callback
*/
@JvmStatic
fun queryStationLeaveAwayPassengers(
context: Context,
seq: Int,
siteId: Int,
callback: OchCommonServiceCallback<QueryLeaveAwayPassengersResponse>?
) {
mService.queryStationLeaveAwayPassengers(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
QueryLeaveAwayPassengersRequest(seq, siteId)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryStationLeaveAwayPassengers"))
}
/**
* 查询小巴车订单
* @param context
* @param callback
*/
@JvmStatic
fun queryBusOrders(context: Context, callback: OchCommonServiceCallback<BusOrdersResponse>?) {
mService.queryBusOrders(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
MoGoAiCloudClientConfig.getInstance().sn
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusOrders"))
}
@JvmStatic
fun queryBusLines(context: Context, callback: OchCommonServiceCallback<BusQueryLinesResponse>?) {
mService.queryBusLines(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
MoGoAiCloudClientConfig.getInstance().sn
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
}
@JvmStatic
fun queryBusTaskByLineId(
context: Context,
lineId: String?,
callback: OchCommonServiceCallback<BusQueryLineTaskResponse>?
) {
mService.queryBusTaskByLineId(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
lineId
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
}
}