From eefc366d518bbefcebacfce984ccc3bd8c2c15c7 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 23 Sep 2024 14:03:24 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=20[fea]=20[=E7=BA=BF=E8=B7=AF=E5=92=8C?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/manager/loop/BizLoopManager.kt | 8 + .../och/common/module/network/OchCommonNet.kt | 56 +++++ .../module/network/OchnetDataTransform.kt | 14 ++ .../network/exception/NetDataException.kt | 19 ++ .../mogo/och/weaknet/ShuttleDriverProvider.kt | 16 +- .../bean/response/BusRoutesResponse.kt | 4 +- .../response/CarExecutableTaskResponse.kt | 16 +- .../com/mogo/och/weaknet/constant/BusConst.kt | 14 -- .../com/mogo/och/weaknet/model/EventModel.kt | 20 +- .../com/mogo/och/weaknet/model/LineModel.kt | 66 ++--- .../mogo/och/weaknet/model/ThirdDeviceData.kt | 13 +- .../com/mogo/och/weaknet/model/TicketModel.kt | 2 +- .../repository/db/bean/LineDataBean.kt | 1 + .../{ContraiRepository.kt => ContraiDb.kt} | 5 +- .../repository/db/repository/DbThreadUtils.kt | 13 - .../{EventRepository.kt => EventDb.kt} | 11 +- .../{LineRepository.kt => LineDb.kt} | 13 +- .../{SiteRepository.kt => SiteDb.kt} | 5 +- .../{TaskRepository.kt => TaskDb.kt} | 8 +- .../{TaskSiteRepository.kt => TaskSiteDb.kt} | 12 +- .../och/weaknet/repository/net/IRepository.kt | 11 + .../repository/net/RepositoryManager.kt | 45 ++++ .../net/bean/request/BusCloseTaskRequest.java | 23 ++ .../request/BusResetDrivingLineRequest.java | 20 ++ .../request/BusRoutePlanningUpdateReqBean.kt | 16 ++ .../request/BusUpdateSiteStatusRequest.java | 26 ++ .../net/bean/request/CarHeartbeatReqBean.kt | 17 ++ .../response/BusQueryLineTaskResponse.java | 14 ++ .../bean/response/BusQueryLinesResponse.java | 14 ++ .../repository/net/impl/bus/BusRepository.kt | 32 +++ .../net/impl/bus/IBascApiService.kt | 166 ++++++++++++ .../net/impl/bus/OrderServiceManager.kt | 236 ++++++++++++++++++ .../net/impl/bussaas/BusSaasRepository.kt | 32 +++ .../net/impl/bussaas/ISAASApiService.kt | 143 +++++++++++ .../net/impl/bussaas/OrderServiceManager.kt | 234 +++++++++++++++++ .../net/impl/shuttle/IBascApiService.java | 112 +++++++++ .../net/impl/shuttle/OrderServiceManager.kt | 209 ++++++++++++++++ .../net/impl/shuttle/ShuttleRepository.kt | 26 ++ .../shuttlesaas/IBascApiService.java | 2 +- .../shuttlesaas/OrderServiceManager.kt | 2 +- .../impl/shuttlesaas/ShuttleSaasRepository.kt | 20 ++ 41 files changed, 1600 insertions(+), 116 deletions(-) create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonNet.kt create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchnetDataTransform.kt create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/network/exception/NetDataException.kt rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/{ContraiRepository.kt => ContraiDb.kt} (94%) delete mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/DbThreadUtils.kt rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/{EventRepository.kt => EventDb.kt} (95%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/{LineRepository.kt => LineDb.kt} (87%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/{SiteRepository.kt => SiteDb.kt} (92%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/{TaskRepository.kt => TaskDb.kt} (97%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/{TaskSiteRepository.kt => TaskSiteDb.kt} (89%) create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IRepository.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/RepositoryManager.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusCloseTaskRequest.java create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusResetDrivingLineRequest.java create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusRoutePlanningUpdateReqBean.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusUpdateSiteStatusRequest.java create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/CarHeartbeatReqBean.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLineTaskResponse.java create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/BusRepository.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/IBascApiService.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/OrderServiceManager.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/BusSaasRepository.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/ISAASApiService.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/OrderServiceManager.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/IBascApiService.java create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/OrderServiceManager.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/ShuttleRepository.kt rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/{ => impl}/shuttlesaas/IBascApiService.java (97%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/{ => impl}/shuttlesaas/OrderServiceManager.kt (98%) create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/ShuttleSaasRepository.kt diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/BizLoopManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/BizLoopManager.kt index 375ed9880a..de92c9b15a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/BizLoopManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/BizLoopManager.kt @@ -141,4 +141,12 @@ object BizLoopManager { } } + fun runInIoThread(runable:Runnable){ + if(ThreadUtils.isMainThread()){ + ThreadUtils.getIoPool().submit(runable) + }else{ + runable.run() + } + } + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonNet.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonNet.kt new file mode 100644 index 0000000000..38de7a812d --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonNet.kt @@ -0,0 +1,56 @@ +package com.mogo.och.common.module.network + +import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.utils.CallerLoggerUtils.flavorTag +import com.mogo.och.weaknet.repository.db.exception.NetDataException +import io.reactivex.Observable +import io.reactivex.ObservableSource +import io.reactivex.functions.Function + + +class OchCommonNet(val apiName:String, val writeLog:Boolean) : Function> { + + companion object { + const val TAG = "CommonNet" + } + + private var tag:Long = System.currentTimeMillis() + + + init { + CallerLogger.e("$flavorTag${OchCommonSubscribeImpl.TAG}", "$apiName: 去请求()") + if(writeLog) { + OchChainLogManager.writeChainLogNet(false,"接口:${apiName}", "去请求_${tag}") + } + } + + override fun apply(baseData: T): ObservableSource { + if (baseData.code != 0 && baseData.code != 200) { + onError(baseData.msg,baseData.code) + return Observable.error(NetDataException(baseData.code,baseData.msg)) + } else { + onSuccess(baseData) + return Observable.just(baseData) + } + } + + fun onSuccess(o: T) { + CallerLogger.d("$flavorTag${TAG}", "$apiName: onSuccess() ${o.msg}") + if(writeLog) { + OchChainLogManager.writeChainLogNet(false,"接口:${apiName}", "请求成功:${o}_${tag}") + } + } + + fun onError(message: String, code: Int) { + CallerLogger.e("$flavorTag${TAG}", "$apiName: onError() code = $code; message = $message") + if(writeLog) { + OchChainLogManager.writeChainLogNet( + true, + "接口:${apiName}", + "请求失败: onError() code = $code; message = $message\" _${tag}" + ) + } + } +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchnetDataTransform.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchnetDataTransform.kt new file mode 100644 index 0000000000..50459fdbf7 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchnetDataTransform.kt @@ -0,0 +1,14 @@ +package com.mogo.och.weaknet.repository.db.transform + +import io.reactivex.Observable +import io.reactivex.ObservableSource +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.functions.Function +import io.reactivex.schedulers.Schedulers + +fun Observable.transform4DataBase(transfor:Function>): Observable { + return flatMap(transfor) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) +} + diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/network/exception/NetDataException.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/exception/NetDataException.kt new file mode 100644 index 0000000000..3ac8dbe4f5 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/exception/NetDataException.kt @@ -0,0 +1,19 @@ +package com.mogo.och.weaknet.repository.db.exception + +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.utilcode.util.NetworkUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.common.module.R +import com.mogo.och.common.module.utils.ResourcesUtils + +class NetDataException: RuntimeException { + constructor() : super() + constructor(message: String?) : super(message) + constructor(code:Int,message: String?):super("${code}_${message}"){ + if (!NetworkUtils.isConnected(AbsMogoApplication.getApp())) { + ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip)); + } else { + ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip)); + } + } +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt index 421cb34e4c..a802af293e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt @@ -10,10 +10,10 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.biz.provider.CommonServiceImpl import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics -import com.mogo.och.weaknet.repository.db.repository.EventRepository -import com.mogo.och.weaknet.repository.db.repository.LineRepository -import com.mogo.och.weaknet.repository.db.repository.TaskRepository -import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository +import com.mogo.och.weaknet.repository.db.repository.EventDb +import com.mogo.och.weaknet.repository.db.repository.LineDb +import com.mogo.och.weaknet.repository.db.repository.TaskDb +import com.mogo.och.weaknet.repository.db.repository.TaskSiteDb import com.mogo.och.weaknet.ui.fragment.ShuttleFragment import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.ui.bizswitch.SwitchBizView @@ -33,10 +33,10 @@ class ShuttleDriverProvider : CommonServiceImpl() { override fun init(context: Context) { d(SceneConstant.M_TAXI + TAG, "init") ThreadUtils.getIoPool().submit { - LineRepository.deleteObsoleteData() - TaskRepository.deleteObsoleteData() - TaskSiteRepository.deleteObsoleteData() - EventRepository.deleteObsoleteData() + LineDb.deleteObsoleteData() + TaskDb.deleteObsoleteData() + TaskSiteDb.deleteObsoleteData() + EventDb.deleteObsoleteData() } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt index 5f61cd60a3..3408f90744 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt @@ -7,7 +7,7 @@ import com.mogo.och.data.bean.BusStationBean import com.mogo.och.data.bean.LineInfo import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean -import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository +import com.mogo.och.weaknet.repository.db.repository.TaskSiteDb import java.lang.Boolean import kotlin.String @@ -86,7 +86,7 @@ class BusRoutesResponse : BaseData() { temp.isPlayTts = it.isPlayTts runnintTaskAndSites.add(temp) } - TaskSiteRepository.addOrUpdate(*runnintTaskAndSites.toTypedArray()) + TaskSiteDb.addOrUpdate(*runnintTaskAndSites.toTypedArray()) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/CarExecutableTaskResponse.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/CarExecutableTaskResponse.kt index 60ab7def27..1c1185ca7d 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/CarExecutableTaskResponse.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/CarExecutableTaskResponse.kt @@ -5,10 +5,10 @@ import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean import com.mogo.och.weaknet.repository.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.SiteDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean -import com.mogo.och.weaknet.repository.db.repository.ContraiRepository -import com.mogo.och.weaknet.repository.db.repository.LineRepository -import com.mogo.och.weaknet.repository.db.repository.SiteRepository -import com.mogo.och.weaknet.repository.db.repository.TaskRepository +import com.mogo.och.weaknet.repository.db.repository.ContraiDb +import com.mogo.och.weaknet.repository.db.repository.LineDb +import com.mogo.och.weaknet.repository.db.repository.SiteDb +import com.mogo.och.weaknet.repository.db.repository.TaskDb /** * @@ -53,13 +53,13 @@ data class CarExecutableTaskResponse(val data: List?) : BaseData(){ taskInfs.forEach { it.lineId = lineId } - TaskRepository.addOrUpdate(taskInfs,lineId) + TaskDb.addOrUpdate(taskInfs,lineId) } } - LineRepository.checkAndUpdate(lineList) - ContraiRepository.addOrUpdate(contrailList) - SiteRepository.addOrUpdate(siteList) + LineDb.checkAndUpdate(lineList) + ContraiDb.addOrUpdate(contrailList) + SiteDb.addOrUpdate(siteList) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/constant/BusConst.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/constant/BusConst.kt index 59d1367a43..8c528a922e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/constant/BusConst.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/constant/BusConst.kt @@ -12,14 +12,6 @@ class BusConst { // 测试用的广播 const val BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY = "sceneType" - // 无状态 - const val STATION_STATUS_IDLE = 0 - // 已过站(历史站) - const val STATION_STATUS_LEAVING = 1 - // 到站(当前站) - const val STATION_STATUS_STOPPED = 2 - // 未到站(未到站) - const val STATION_STATUS_ARRIVING = 3 // 上报心跳轮询ms const val LOOP_PERIOD_60S = 60 * 1000L @@ -49,12 +41,6 @@ class BusConst { //围栏到站 暂定10米 const val ARRIVE_AT_END_STATION_DISTANCE = 10 - // 轮询 - const val LOOP_PASSENGER_5S = 5 * 1000L - const val LOOP_PASSENGER_2S = 2 * 1000L - const val LOOP_PASSENGER_1S = 1 * 1000L - const val LOOP_DELAY_500 = 500L - const val DELAY_10S = 10 * 1000L } } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt index 1a9f58bbc0..a8b273f67e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt @@ -9,16 +9,16 @@ import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.weaknet.bean.request.ShuttleEventRequest import com.mogo.och.weaknet.bean.WaitUploadLine import com.mogo.och.weaknet.bean.WaitUploadTask -import com.mogo.och.weaknet.repository.net.shuttlesaas.OrderServiceManager +import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.OrderServiceManager import com.mogo.och.weaknet.repository.db.bean.EventDataBean -import com.mogo.och.weaknet.repository.db.repository.EventRepository +import com.mogo.och.weaknet.repository.db.repository.EventDb import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import io.reactivex.subjects.BehaviorSubject import java.util.concurrent.atomic.AtomicBoolean -object EventModel : EventRepository.EventCallback { +object EventModel : EventDb.EventCallback { private val isUpdating by lazy { AtomicBoolean(false) } @@ -26,12 +26,12 @@ object EventModel : EventRepository.EventCallback { private val createDefault = BehaviorSubject.createDefault(isUpdating.get()) fun load(){ - EventRepository.eventCallback = this + EventDb.eventCallback = this BizLoopManager.postDelayed(loopUpdateInfo,2*60*1000) } fun release(){ - EventRepository.eventCallback = null + EventDb.eventCallback = null } private val loopUpdateInfo = Runnable { updateEvent() } @@ -46,7 +46,7 @@ object EventModel : EventRepository.EventCallback { isUpdating.set(true) createDefault.onNext(isUpdating.get()) ThreadUtils.getSinglePool().submit { - val waitUpdateEvent = EventRepository.queryWaitUpdateEvent() + val waitUpdateEvent = EventDb.queryWaitUpdateEvent() if(waitUpdateEvent.isNullOrEmpty()){ OchChainLogManager.writeChainLogDb("上报event","没有数据需要上报${Thread.currentThread().name}") isUpdating.set(false) @@ -62,10 +62,10 @@ object EventModel : EventRepository.EventCallback { it.updateStatus = EventDataBean.updated } OchChainLogManager.writeChainLogDb("上报event成功","$transformDb2Net ${Thread.currentThread().name}") - EventRepository.saveUpdateSuccess(waitUpdateEvent) + EventDb.saveUpdateSuccess(waitUpdateEvent) isUpdating.set(false) createDefault.onNext(isUpdating.get()) - val queryWaitUpdateEventCount = EventRepository.queryWaitUpdateEventCount() + val queryWaitUpdateEventCount = EventDb.queryWaitUpdateEventCount() if(queryWaitUpdateEventCount!=null&&queryWaitUpdateEventCount>0){ updateEvent() return @@ -93,14 +93,14 @@ object EventModel : EventRepository.EventCallback { } fun haveDataWaitSyn(): Boolean { - EventRepository.queryWaitUpdateEvent()?.let { + EventDb.queryWaitUpdateEvent()?.let { return it.isNotEmpty() } return false } fun queryWaitUploadInfo(): Observable>? { - return EventRepository.queryWaitUploadData() + return EventDb.queryWaitUploadData() ?.flatMap { waitUploadList-> val result = mutableListOf() waitUploadList.forEach { wait-> diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt index f67787e013..2d73f948a2 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt @@ -15,6 +15,7 @@ import com.mogo.och.common.module.manager.autopilot.line.LineManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.data.bean.BusStationBean @@ -22,17 +23,18 @@ import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.bean.response.BusRoutesResponse import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse import com.mogo.och.weaknet.callback.IBusLinesCallback -import com.mogo.och.weaknet.constant.BusConst -import com.mogo.och.weaknet.repository.net.shuttlesaas.OrderServiceManager import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean import com.mogo.och.weaknet.repository.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean -import com.mogo.och.weaknet.repository.db.repository.ContraiRepository -import com.mogo.och.weaknet.repository.db.repository.EventRepository -import com.mogo.och.weaknet.repository.db.repository.LineRepository -import com.mogo.och.weaknet.repository.db.repository.TaskRepository -import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository +import com.mogo.och.weaknet.repository.db.repository.ContraiDb +import com.mogo.och.weaknet.repository.db.repository.EventDb +import com.mogo.och.weaknet.repository.db.repository.LineDb +import com.mogo.och.weaknet.repository.db.repository.TaskDb +import com.mogo.och.weaknet.repository.db.repository.TaskSiteDb +import com.mogo.och.weaknet.repository.net.RepositoryManager +import com.mogo.och.weaknet.repository.net.impl.shuttle.ShuttleRepository +import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.OrderServiceManager import io.reactivex.Observer import io.reactivex.disposables.Disposable import java.util.concurrent.ConcurrentHashMap @@ -50,6 +52,8 @@ object LineModel { private const val TAG = "BusLineModel" + private val context = AbsMogoApplication.getApp() + // 判断接口是否变化 private const val EXECUTABLECHANGEMD5 = "EXECUTABLECHANGEMD5" @@ -174,7 +178,7 @@ object LineModel { */ @JvmStatic fun queryBusLines() { - LineRepository.queryCanUseLine() + RepositoryManager.queryCanUseLine() ?.subscribe(object : Observer?> { override fun onSubscribe(d: Disposable) { d(TAG, "onSubscribe") @@ -203,8 +207,8 @@ object LineModel { */ @JvmStatic fun queryBusLineTasksById(lineId: Long) { - TaskRepository.queryCanUserTask(lineId) - ?.subscribe(object : Observer?> { + RepositoryManager.queryCanUserTask(lineId) + .subscribe(object : Observer?> { override fun onSubscribe(d: Disposable) { d(TAG, "onSubscribe") } @@ -233,13 +237,13 @@ object LineModel { fun commitSwitchLineId(task: TaskDataBean, line: LineDataBean) { line.getLineIdAndName { lineId, lineName -> task.getLineIdAndName { taskId, taskTime -> - TaskRepository.startTask( + TaskDb.startTask( taskId, lineId, lineName, - object : TaskRepository.TaskStatusCallback { + object : TaskDb.TaskStatusCallback { override fun startSuccess() { - EventRepository.saveEventTaskStart(taskId,lineId,taskTime,lineName) + EventDb.saveEventTaskStart(taskId,lineId,taskTime,lineName) OrderModel.queryBusRoutes() mBusLinesCallbackMap.forEach { it.value.onChangeLineIdSuccess() @@ -263,7 +267,7 @@ object LineModel { // 2、本地没有从远端恢复任务 fun loadStartedTaskAndDefaultInfo() { // 获取正在运行的任务 - val runningTaskInfo = TaskRepository.queryRunningTask() + val runningTaskInfo = TaskDb.queryRunningTask() if (runningTaskInfo.isNullOrEmpty()) { // 本地没有进行中的任务 @@ -279,7 +283,7 @@ object LineModel { // 恢复站点信息 currentTask?.taskId?.let { // 获取正在进行中的具体信息 - val runnintTaskAndSites = TaskSiteRepository.queryRunningTask(it) + val runnintTaskAndSites = TaskSiteDb.queryRunningTask(it) if(runnintTaskAndSites.isNullOrEmpty()||runnintTaskAndSites.size<2){ OchChainLogManager.writeChainLogDb("加载任务", "异常情况:有任务:${runningTaskInfo} runningTask 表格没有对应的数据:${runnintTaskAndSites}") return @@ -298,7 +302,7 @@ object LineModel { } // 设置自动驾驶信息 currentTask?.lineId?.let { - val contraiInfoTemp = ContraiRepository.queryAutopilotInfoByLineid(it) + val contraiInfoTemp = ContraiDb.queryAutopilotInfoByLineid(it) ContrailDataBean.save2Common(contraiInfoTemp) } mBusLinesCallbackMap.forEach { callback-> @@ -314,14 +318,14 @@ object LineModel { } val tempList = sorted.toMutableList() val possible = tempList.removeFirst() - val queryLastData = EventRepository.queryLastData() + val queryLastData = EventDb.queryLastData() if(queryLastData!=null){ if(possible.taskId==queryLastData.taskId){ // 最后一个事件和最新的task一直 恢复数据 tempList.forEach { it.status = TaskDataBean.used } - TaskRepository.addOrUpdate(*tempList.toTypedArray()) + TaskDb.addOrUpdate(*tempList.toTypedArray()) loadStartedTaskAndDefaultInfo() OchChainLogManager.writeChainLogDb("加载任务", "异常情况:多个正在进行的任务 task:${runningTaskInfo} event:${queryLastData.taskId}有一个和event表对应使用相同的一个 另一个置为已使用") return @@ -332,7 +336,7 @@ object LineModel { it.status = TaskDataBean.used } OchChainLogManager.writeChainLogDb("加载任务", "异常情况:多个正在进行的任务 task:${runningTaskInfo} 全部置为已使用 从后台加载正在使用的任务") - TaskRepository.addOrUpdate(*runningTaskInfo.toTypedArray()) + TaskDb.addOrUpdate(*runningTaskInfo.toTypedArray()) loadServerRuningTask() } @@ -347,19 +351,19 @@ object LineModel { } response?.data?.let { if (!it.sites.isNullOrEmpty()&&it.sites.size>1) { - val queryTaskById = TaskRepository.queryTaskById(it.taskId.toLong()) + val queryTaskById = TaskDb.queryTaskById(it.taskId.toLong()) if(queryTaskById==null||queryTaskById.status!=TaskDataBean.used) { OchChainLogManager.writeChainLogDb( "业务数据", "本地没有正在运行的数据,服务器端有${it}" ) - LineRepository.saveRunningInfo( + LineDb.saveRunningInfo( it.lineId, it.name, it.sites.last().name ) - TaskRepository.saveRunningInfo(it.lineId, it.taskId, it.taskTime) - ContraiRepository.saveRunningInfo( + TaskDb.saveRunningInfo(it.lineId, it.taskId, it.taskTime) + ContraiDb.saveRunningInfo( it.lineId, it.csvFileMd5, it.csvFileUrl, @@ -411,14 +415,14 @@ object LineModel { if (task.taskId!=null&&task.lineId!=null) { it.drivingStatus = TaskSiteDataBean.drivingStatusCurrent it.isLeaving = true - TaskSiteRepository.updateLeave(task.taskId!!, it.siteId.toLong(), true) + TaskSiteDb.updateLeave(task.taskId!!, it.siteId.toLong(), true) mBusLinesCallbackMap.forEach {map-> map.value.onLeaveStaionSuccess() } OchChainLogManager.writeChainLogDb("滑动出发", "task:${currentTask}__taskId:${currentTask?.taskId}") // 设置滑动出发任务 LineManager.getLineInfo { lineInfo -> - EventRepository.saveEventTaskLeaveSite( + EventDb.saveEventTaskLeaveSite( task.taskId!!, task.lineId!!, it.siteId.toLong(), @@ -453,10 +457,10 @@ object LineModel { if(currentTask!=null&& currentTask!!.taskId!=null){ currentTask?.let { task-> if (task.taskId!=null&&task.lineId!=null) { - TaskSiteRepository.updateDrivingStatusAndLeave(task.taskId!!,start.siteId.toLong(),TaskSiteDataBean.drivingStatusPassed,false) + TaskSiteDb.updateDrivingStatusAndLeave(task.taskId!!,start.siteId.toLong(),TaskSiteDataBean.drivingStatusPassed,false) // 设置到站任务 LineManager.getLineInfo { lineInfo -> - EventRepository.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName) + EventDb.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName) } } } @@ -467,7 +471,7 @@ object LineModel { end.drivingStatus = TaskSiteDataBean.drivingStatusCurrent if(currentTask!=null&& currentTask!!.taskId!=null){ currentTask?.taskId?.let { taskId-> - TaskSiteRepository.updateDrivingStatus(taskId,end.siteId.toLong(),TaskSiteDataBean.drivingStatusCurrent) + TaskSiteDb.updateDrivingStatus(taskId,end.siteId.toLong(),TaskSiteDataBean.drivingStatusCurrent) } }else{ OchChainLogManager.writeChainLog("到站_数据更新_error","task:${currentTask}__taskId:${currentTask?.taskId}") @@ -510,9 +514,9 @@ object LineModel { fun endTask() { currentTask?.let {task-> if (task.taskId!=null&&task.lineId!=null) { - TaskRepository.endTask(task.taskId!!) + TaskDb.endTask(task.taskId!!) LineManager.getLineInfo { lineInfo -> - EventRepository.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName) + EventDb.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName) } } } @@ -531,7 +535,7 @@ object LineModel { fun startTaskMessage():Boolean { if (!stationList.isNullOrEmpty()) { - return startStationIndex == 0 && stationList!!.first().drivingStatus == BusConst.STATION_STATUS_STOPPED && !stationList!!.first().isLeaving + return startStationIndex == 0 && stationList!!.first().drivingStatus == TaskSiteDataBean.drivingStatusCurrent && !stationList!!.first().isLeaving } return false } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt index 3be49474bd..d846cd4d3e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt @@ -63,12 +63,17 @@ object ThirdDeviceData { override fun onLanMsgReceived(taskDetailsMsg: TaskDetailsMsg?) = sendTaskDetailsToClients() } + private var delayedTts:Runnable?=null + // 离站 fun leaveStation() { LineManager.getStationsWithLine { start, end, lineInfo -> - UiThreadHandler.postDelayed({ //延迟10s播报 - ShuttleVoiceManager.leaveStationBus(end.name, end.nameKr) - }, BusConst.DELAY_10S) + delayedTts = object :Runnable{ + override fun run() { + ShuttleVoiceManager.leaveStationBus(end.name, end.nameKr) + } + } + UiThreadHandler.postDelayed(delayedTts, BusConst.DELAY_10S) //给bus外屏发送 LedScreenManager.sendTripInfo2Led( LedScreenManager.LEAVE_STATION, @@ -82,6 +87,7 @@ object ThirdDeviceData { //到站 fun arriveStation() { + UiThreadHandler.removeCallbacks(delayedTts) LineManager.getStationsWithLine { start, end, lineInfo -> ShuttleVoiceManager.arrivedStationBus(end.name, end.nameKr) //给bus外屏发送 @@ -97,6 +103,7 @@ object ThirdDeviceData { //结束任务 fun endTask() { + UiThreadHandler.removeCallbacks(delayedTts) LineManager.getLineInfo {lineInfo -> LedScreenManager.sendTripInfo2Led( LedScreenManager.END_TRIP, diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt index 268a0a1048..9281592ba8 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt @@ -24,7 +24,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.weaknet.bean.response.WriteOffCountResponse import com.mogo.och.weaknet.bean.WriteOffPassenger -import com.mogo.och.weaknet.repository.net.shuttlesaas.OrderServiceManager +import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.OrderServiceManager import com.mogo.och.weaknet.util.ShuttleVoiceManager import io.reactivex.Observable import io.reactivex.ObservableEmitter diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt index 569459b739..301dcfad63 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt @@ -21,6 +21,7 @@ data class LineDataBean( * 线路名称 */ @ColumnInfo(name = "line_name", typeAffinity = ColumnInfo.TEXT) + @SerializedName("name") var lineName: String? = null, /** diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt similarity index 94% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt index eebe434368..fcedf75ab9 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt @@ -1,11 +1,12 @@ package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.network.utils.digest.DigestUtils +import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao -object ContraiRepository { +object ContraiDb { private var contrailDao: ContrailDataDao?=null @@ -32,7 +33,7 @@ object ContraiRepository { } } } - DbThreadUtils.runInIoThread(runnable) + BizLoopManager.runInIoThread(runnable) } fun deleteByLineId(lineId: Long) { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/DbThreadUtils.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/DbThreadUtils.kt deleted file mode 100644 index ca65daada8..0000000000 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/DbThreadUtils.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.mogo.och.weaknet.repository.db.repository - -import com.mogo.eagle.core.utilcode.util.ThreadUtils - -object DbThreadUtils { - fun runInIoThread(runable:Runnable){ - if(ThreadUtils.isMainThread()){ - ThreadUtils.getIoPool().submit(runable) - }else{ - runable.run() - } - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt similarity index 95% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt index 502553854e..e5c8b33331 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt @@ -2,6 +2,7 @@ package com.mogo.och.weaknet.repository.db.repository import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.EventDataBean @@ -9,7 +10,7 @@ import com.mogo.och.weaknet.repository.db.dao.EventDataDao import io.reactivex.Observable -object EventRepository { +object EventDb { private var eventDataDao: EventDataDao? = null @@ -31,7 +32,7 @@ object EventRepository { event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1 event.siteId = 0L event.seq = 0 - DbThreadUtils.runInIoThread { + BizLoopManager.runInIoThread { eventDataDao?.insert(event) eventCallback?.notifySyn() } @@ -56,7 +57,7 @@ object EventRepository { event.siteId = siteId event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1 event.seq = seq - DbThreadUtils.runInIoThread { + BizLoopManager.runInIoThread { eventDataDao?.insert(event) eventCallback?.notifySyn() } @@ -81,7 +82,7 @@ object EventRepository { event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L event.siteId = siteId event.seq = seq - DbThreadUtils.runInIoThread { + BizLoopManager.runInIoThread { eventDataDao?.insert(event) eventCallback?.notifySyn() } @@ -99,7 +100,7 @@ object EventRepository { event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L event.siteId = 0L event.seq = 0 - DbThreadUtils.runInIoThread { + BizLoopManager.runInIoThread { eventDataDao?.insert(event) eventCallback?.notifySyn() } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt similarity index 87% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt index 7d6024c8fa..0476de577e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt @@ -1,12 +1,13 @@ package com.mogo.och.weaknet.repository.db.repository import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.dao.LineDataDao import io.reactivex.Observable -object LineRepository { +object LineDb { private var lineDao: LineDataDao?=null @@ -54,14 +55,14 @@ object LineRepository { minusLine.lineId?.let { lineId-> // 删除线路对应的站点 - SiteRepository.deleteByLineId(lineId) - val runingTask = TaskRepository.queryRunningTaskByLineId(lineId) + SiteDb.deleteByLineId(lineId) + val runingTask = TaskDb.queryRunningTaskByLineId(lineId) if(runingTask.isNullOrEmpty()){ // 删除线路对应的自驾信息 - ContraiRepository.deleteByLineId(lineId) + ContraiDb.deleteByLineId(lineId) - TaskRepository.deleteByLineId(lineId) + TaskDb.deleteByLineId(lineId) } } } @@ -70,7 +71,7 @@ object LineRepository { } } - DbThreadUtils.runInIoThread(runable) + BizLoopManager.runInIoThread(runable) } fun deleteObsoleteData(){ diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt similarity index 92% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt index 7891d7a57b..8dd6856a00 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt @@ -1,11 +1,12 @@ package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.network.utils.digest.DigestUtils +import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.SiteDataBean import com.mogo.och.weaknet.repository.db.dao.SiteDataDao -object SiteRepository { +object SiteDb { private var siteDataDao: SiteDataDao? = null @@ -32,7 +33,7 @@ object SiteRepository { } } } - DbThreadUtils.runInIoThread(runnable) + BizLoopManager.runInIoThread(runnable) } fun deleteByLineId(lineId: Long) { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt similarity index 97% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt index 494d10e2cf..50d1686f92 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt @@ -12,7 +12,7 @@ import com.mogo.och.weaknet.repository.db.dao.TaskDataDao import com.mogo.och.weaknet.repository.db.exception.DataException import io.reactivex.Observable -object TaskRepository { +object TaskDb { private var taskDataDao: TaskDataDao? = null @@ -53,7 +53,7 @@ object TaskRepository { } } } - DbThreadUtils.runInIoThread(runable) + BizLoopManager.runInIoThread(runable) } @@ -85,7 +85,7 @@ object TaskRepository { } CallerLogger.d(TAG,"更新任务状态用时:${System.currentTimeMillis()-startTime}") startTime = System.currentTimeMillis() - updateCount = TaskSiteRepository.startTask(taskId, lineId, lineName) + updateCount = TaskSiteDb.startTask(taskId, lineId, lineName) OchChainLogManager.writeChainLogDb("开始任务", "把正在使用的数据更新到RunningTask表格一共${updateCount}行数据") CallerLogger.d(TAG,"插入正在运行的线路用时:${System.currentTimeMillis()-startTime}") } catch (e: Exception) { @@ -135,7 +135,7 @@ object TaskRepository { fun endTask(taskId: Long) { - DbThreadUtils.runInIoThread{ + BizLoopManager.runInIoThread{ taskDataDao?.endTask(taskId) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt similarity index 89% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt index 9c7085cc2a..9b2895c82e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt @@ -3,12 +3,14 @@ package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.TAG import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao import com.mogo.och.weaknet.repository.db.exception.DataException +import com.mogo.och.weaknet.repository.db.exception.NetDataException -object TaskSiteRepository { +object TaskSiteDb { private var taskSiteDataDao: TaskSiteDataDao? = null @@ -24,7 +26,7 @@ object TaskSiteRepository { fun startTask(taskId: Long, linId: Long,lineName:String):Int? { // 获取线路的站点 var startTime = System.currentTimeMillis() - val querySites = SiteRepository.querySiteByLineId(linId) + val querySites = SiteDb.querySiteByLineId(linId) if(querySites.isNullOrEmpty()){ throw DataException("没有站点数据") } @@ -52,19 +54,19 @@ object TaskSiteRepository { // 滑动出发 fun updateLeave(taskId: Long, siteId: Long, leave:Boolean) { - DbThreadUtils.runInIoThread{ + BizLoopManager.runInIoThread{ taskSiteDataDao?.updateLeave(taskId,siteId,if(leave) 1 else 0) } } fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatus: Int){ - DbThreadUtils.runInIoThread{ + BizLoopManager.runInIoThread{ taskSiteDataDao?.updateDrivingStatus(taskId,siteId,drivingStatus) } } fun updateDrivingStatusAndLeave(taskId: Long, siteId: Long, drivingStatus: Int, leave: Boolean){ - DbThreadUtils.runInIoThread{ + BizLoopManager.runInIoThread{ taskSiteDataDao?.updateDrivingStatusANdLeave(taskId,siteId,drivingStatus,if(leave) 1 else 0) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IRepository.kt new file mode 100644 index 0000000000..daff1f4195 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IRepository.kt @@ -0,0 +1,11 @@ +package com.mogo.och.weaknet.repository.net + +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import io.reactivex.Observable + +interface IRepository { + fun queryCanUseLine(): Observable?>? + + fun queryCanUserTask(lineId:Long): Observable?>? +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/RepositoryManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/RepositoryManager.kt new file mode 100644 index 0000000000..36bb28bd97 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/RepositoryManager.kt @@ -0,0 +1,45 @@ +package com.mogo.och.weaknet.repository.net + +import com.mogo.commons.env.ProjectUtils +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.net.impl.bus.BusRepository +import com.mogo.och.weaknet.repository.net.impl.bussaas.BusSaasRepository +import com.mogo.och.weaknet.repository.net.impl.shuttle.OrderServiceManager +import com.mogo.och.weaknet.repository.net.impl.shuttle.ShuttleRepository +import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.ShuttleSaasRepository +import io.reactivex.Observable + +object RepositoryManager { + + + private lateinit var repository:IRepository + + init { + if(ProjectUtils.isSaas()){ + if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + repository = ShuttleSaasRepository() + }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + repository = BusSaasRepository() + } + }else { + if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + repository = ShuttleRepository() + }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + repository = BusRepository() + } + } + } + + fun queryCanUseLine() : Observable?>? { + return repository.queryCanUseLine() + } + + fun queryCanUserTask(lineId: Long): Observable?>? { + return repository.queryCanUserTask(lineId) + } + + +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusCloseTaskRequest.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusCloseTaskRequest.java new file mode 100644 index 0000000000..2450a0c9d3 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusCloseTaskRequest.java @@ -0,0 +1,23 @@ +package com.mogo.och.weaknet.repository.net.bean.request; + +import com.mogo.commons.storage.SharedPrefsMgr; +import com.mogo.och.common.module.utils.DateTimeUtil; + +/** + * 中止/结束任务请求 + */ +public class BusCloseTaskRequest { + + private String sn; + private int taskId; + private long writeVersion; + public BusCloseTaskRequest(int taskId) { + this.sn = SharedPrefsMgr.getInstance().getSn(); + this.taskId = taskId; + this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); + } + + public String getSn() { + return sn; + } +} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusResetDrivingLineRequest.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusResetDrivingLineRequest.java new file mode 100644 index 0000000000..2e5e49dbea --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusResetDrivingLineRequest.java @@ -0,0 +1,20 @@ +package com.mogo.och.weaknet.repository.net.bean.request; + +import com.mogo.commons.storage.SharedPrefsMgr; +import com.mogo.och.common.module.utils.DateTimeUtil; + +/** + * @author: wangmingjun + * @date: 2021/10/18 + */ +public class BusResetDrivingLineRequest { + public String sn; + public int taskId; //切换到的线路id + public long writeVersion; //更新时间戳 + + public BusResetDrivingLineRequest(int taskId) { + this.sn = SharedPrefsMgr.getInstance().getSn(); + this.taskId = taskId; + this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); + } +} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusRoutePlanningUpdateReqBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusRoutePlanningUpdateReqBean.kt new file mode 100644 index 0000000000..e7d6f67909 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusRoutePlanningUpdateReqBean.kt @@ -0,0 +1,16 @@ +package com.mogo.och.weaknet.repository.net.bean.request + +/** + * Created by pangfan on 2021/8/19 + * + * 订单状态更新请求数据结构 + */ +class BusRoutePlanningUpdateReqBean( + var sn: String, var lineId: Int, var startSiteId: Int, + var endSiteId: Int, var points: List +) { + data class Result( + var latitude: Double? = null, + var longitude: Double? = null + ) +} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusUpdateSiteStatusRequest.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusUpdateSiteStatusRequest.java new file mode 100644 index 0000000000..266c46aaa1 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusUpdateSiteStatusRequest.java @@ -0,0 +1,26 @@ +package com.mogo.och.weaknet.repository.net.bean.request; + +import com.mogo.commons.storage.SharedPrefsMgr; + +/** + * @author congtaowang + * @since 2021/3/22 + * + * 小巴车运营状态请求参数 + */ +public class BusUpdateSiteStatusRequest { + + public String sn; + public int taskId; + public int seq;//站点序号 + public int siteId;//站点id + public long writeVersion; //更新时间戳 + + public BusUpdateSiteStatusRequest(int taskId, int siteId, int seq, long writeVersion) { + this.sn = SharedPrefsMgr.getInstance().getSn(); + this.seq = seq; + this.siteId = siteId; + this.taskId = taskId; + this.writeVersion = writeVersion; + } +} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/CarHeartbeatReqBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/CarHeartbeatReqBean.kt new file mode 100644 index 0000000000..822d5fe13b --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/CarHeartbeatReqBean.kt @@ -0,0 +1,17 @@ +package com.mogo.och.weaknet.repository.net.bean.request + +import com.mogo.och.weaknet.constant.BusConst +import java.util.UUID + +/** + * Created on 2021/9/16 + * + * 上传车机心跳信息请求数据 + */ +class CarHeartbeatReqBean( + var sn: String, //经度 + var lon: Double, //纬度 + var lat: Double, + var msgId: String = UUID.randomUUID().toString(), //心跳信息唯一标识 + var interval: Int = (BusConst.LOOP_PERIOD_60S / 1000).toInt() //上报间隔,单位秒,非必传,默认60秒 +) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLineTaskResponse.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLineTaskResponse.java new file mode 100644 index 0000000000..83027e3acb --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLineTaskResponse.java @@ -0,0 +1,14 @@ +package com.mogo.och.weaknet.repository.net.bean.response; + +import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean; + +import java.util.List; + +/** + * @author: wangmingjun + * @date: 2022/2/9 + */ +public class BusQueryLineTaskResponse extends BaseData { + public List data; +} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java new file mode 100644 index 0000000000..5d0726f457 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java @@ -0,0 +1,14 @@ +package com.mogo.och.weaknet.repository.net.bean.response; + +import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.weaknet.repository.db.bean.LineDataBean; + +import java.util.List; + +/** + * @author: wangmingjun + * @date: 2022/2/9 + */ +public class BusQueryLinesResponse extends BaseData { + public List data; +} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/BusRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/BusRepository.kt new file mode 100644 index 0000000000..d6caaf5034 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/BusRepository.kt @@ -0,0 +1,32 @@ +package com.mogo.och.weaknet.repository.net.impl.bus + +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.utilcode.util.NetworkUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.utils.ResourcesUtils +import com.mogo.och.shuttle.weaknet.R +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.net.IRepository +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse +import io.reactivex.Observable + +class BusRepository: IRepository { + + private val content = AbsMogoApplication.getApp() + + init { + + } + + override fun queryCanUseLine(): Observable?>? { + TODO("Not yet implemented") + } + + override fun queryCanUserTask(lineId: Long): Observable?>? { + TODO("Not yet implemented") + } + + +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/IBascApiService.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/IBascApiService.kt new file mode 100644 index 0000000000..d9af14b13c --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/IBascApiService.kt @@ -0,0 +1,166 @@ +package com.mogo.och.weaknet.repository.net.impl.bus + +import com.mogo.eagle.core.data.BaseData +import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest +import com.mogo.och.weaknet.bean.response.BusRoutesResponse +import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusRoutePlanningUpdateReqBean +import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest +import com.mogo.och.weaknet.repository.net.bean.request.CarHeartbeatReqBean +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse +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 + * + * + * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072 + */ +interface IBascApiService { + /** + * 根据车机坐标获取所在区域全部站点信息 + * + * @param request 请求参数 + * @return 接口返回数据 + */ + @Headers("Content-Type:application/json;charset=UTF-8") + @POST("/autopilot-car-hailing/line/v2/driver/bus/lineDataWithDriver/query") + fun queryBusRoutes( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body request: BusQueryLineStationsRequest? + ): Observable + + /** + * @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的 + * @return 返回值是重置后的车站列表 + * 开始路线 + */ + @Headers("Content-Type:application/json;charset=UTF-8") + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startTask") + fun switchLine( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body request: BusResetDrivingLineRequest? + ): Observable + + /** + * 离站,通知服务器 + * @param request + * @return + */ + @Headers("Content-Type:application/json;charset=UTF-8") + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/leave") + fun leaveStation( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body request: BusUpdateSiteStatusRequest? + ): Observable + + /** + * 到站 更新到站信息 + * @param request + * @return + */ + @Headers("Content-type:application/json;charset=UTF-8") + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/arrive") + fun arriveSiteStation( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body request: BusUpdateSiteStatusRequest? + ): Observable + + + /** + * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度 + * @param data + * @return + */ + @Headers("Content-type:application/json;charset=UTF-8") + @POST("/autopilot-car-hailing/location/v2/driver/bus/heartbeat") + fun runCarHeartbeat( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body data: CarHeartbeatReqBean? + ): Observable + + /** + * 查询车辆配置的所有路线 + * @param appId + * @param ticket + * @param sn + * @return + */ + @GET("/autopilot-car-hailing/line/v2/driver/bus/bindLine/query") + fun queryBusLines( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Query("sn") sn: String? + ): Observable + + /** + * 查询路线当天的任务 + * @param appId + * @param ticket + * @param lineId 线路id + * @return + */ + @GET("/autopilot-car-hailing/line/v2/driver/bus/task/query") + fun queryBusTaskByLineId(@Header("appId") appId: String?, @Header("ticket") ticket: String?, @Query("lineId") lineId: String?): Observable + + + /** + * 上传轨迹信息 + * @param appId + * @param ticket + * @param data + * @return + */ + @Headers("Content-type:application/json;charset=UTF-8") + @POST("/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate") + fun updateOrderRoute( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body data: BusRoutePlanningUpdateReqBean? + ): Observable + + /** + * 中止任务 + * @param appId + * @param ticket + * @param data + * @return + */ + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/abortTask") + fun abortTask( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body data: BusCloseTaskRequest? + ): Observable + + /** + * 任务正常跑完结束 + * @param appId + * @param ticket + * @param data + * @return + */ + @Headers("Content-type:application/json;charset=UTF-8") + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endTask") + fun endTask( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body data: BusCloseTaskRequest? + ): Observable +} + diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/OrderServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/OrderServiceManager.kt new file mode 100644 index 0000000000..4bb781e2b5 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/OrderServiceManager.kt @@ -0,0 +1,236 @@ +package com.mogo.och.weaknet.repository.net.impl.bus + +import android.content.Context +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry +import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest +import com.mogo.och.weaknet.bean.response.BusRoutesResponse +import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusRoutePlanningUpdateReqBean +import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest +import com.mogo.och.weaknet.repository.net.bean.request.CarHeartbeatReqBean +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse + +/** + * @author: wangmingjun + * @date: 2021/10/20 + */ +object OrderServiceManager { + + private val M_SERVICE: IBascApiService = + MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( + IBascApiService::class.java + ) + + + /** + * 查询小巴车当前任务 + * @param context + * @param callback + */ + @JvmStatic + fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback?) { + //获取当前高德坐标 + M_SERVICE.queryBusRoutes( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusQueryLineStationsRequest() + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes")) + + } + + /** + * 重置线路站点 + * @param context + * @param taskId + * @param callback + */ + @JvmStatic + fun switchLine( + context: Context, + taskId: Int, + callback: OchCommonServiceCallback? + ) { + M_SERVICE.switchLine( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.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?) { + M_SERVICE.abortTask( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.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?) { + M_SERVICE.endTask( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.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? + ) { + M_SERVICE.leaveStation( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) + ) + .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? + ) { + M_SERVICE.arriveSiteStation( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) + } + + @JvmStatic + fun queryBusLines( + context: Context, + callback: OchCommonServiceCallback? + ) { + M_SERVICE.queryBusLines( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + SharedPrefsMgr.getInstance().sn + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) + } + + @JvmStatic + fun queryBusTaskByLineId( + context: Context, + lineId: String?, + callback: OchCommonServiceCallback? + ) { + M_SERVICE.queryBusTaskByLineId( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + lineId + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) + } + + @JvmStatic + fun updateOrderRoute( + context: Context, + lineId: Int, + startSiteId: Int, + endSiteId: Int, + points: List, + callback: OchCommonServiceCallback? + ) { + val pointsResult = mutableListOf() + points.forEach { + val result = BusRoutePlanningUpdateReqBean.Result() + result.latitude = it.latitude; + result.longitude = it.longitude; + pointsResult.add(result); + } + + M_SERVICE.updateOrderRoute( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusRoutePlanningUpdateReqBean( + SharedPrefsMgr.getInstance().sn, lineId, startSiteId, endSiteId, pointsResult + ) + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderRoute")) + } + + /** + * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度 + * @param context + * @param lon + * @param lat + * @param callback + */ + @JvmStatic + fun runCarHeartbeat( + context: Context, lon: Double, lat: Double, + callback: OchCommonServiceCallback? + ) { + M_SERVICE.runCarHeartbeat( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + CarHeartbeatReqBean( + SharedPrefsMgr.getInstance().sn, lon, lat + ) + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "runCarHeartbeat", false)) + } + +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/BusSaasRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/BusSaasRepository.kt new file mode 100644 index 0000000000..0c3d20cbb2 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/BusSaasRepository.kt @@ -0,0 +1,32 @@ +package com.mogo.och.weaknet.repository.net.impl.bussaas + +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.utilcode.util.NetworkUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.utils.ResourcesUtils +import com.mogo.och.shuttle.weaknet.R +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.net.IRepository +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse +import io.reactivex.Observable + +class BusSaasRepository: IRepository { + + private val content = AbsMogoApplication.getApp() + + init { + + } + + override fun queryCanUseLine(): Observable?>? { + TODO("Not yet implemented") + } + + override fun queryCanUserTask(lineId: Long): Observable?>? { + TODO("Not yet implemented") + } + + +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/ISAASApiService.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/ISAASApiService.kt new file mode 100644 index 0000000000..291c1d1edc --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/ISAASApiService.kt @@ -0,0 +1,143 @@ +package com.mogo.och.weaknet.repository.net.impl.bussaas + +import com.mogo.eagle.core.data.BaseData +import com.mogo.och.weaknet.bean.response.BusRoutesResponse +import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusRoutePlanningUpdateReqBean +import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse +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 + * + * + * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072 + */ +interface ISAASApiService { + /** + * 根据车机坐标获取所在区域全部站点信息 + */ + @Headers("Content-Type:application/json;charset=UTF-8") + @GET("/och-bus-cabin/api/business/v1/driver/bus/lineDataWithDriver/query") + fun queryBusRoutes( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Query("sn") sn: String? + ): Observable + + /** + * @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的 + * @return 返回值是重置后的车站列表 + * 开始路线 + */ + @Headers("Content-Type:application/json;charset=UTF-8") + @POST("/och-bus-cabin/cab/flow/v1/bus/driver/startTask") + fun switchLine( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body request: BusResetDrivingLineRequest? + ): Observable + + /** + * 离站,通知服务器 + */ + @Headers("Content-Type:application/json;charset=UTF-8") + @POST("/och-bus-cabin/cab/flow/v1/bus/driver/leave") + fun leaveStation( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body request: BusUpdateSiteStatusRequest? + ): Observable + + /** + * 到站 更新到站信息 + */ + @Headers("Content-type:application/json;charset=UTF-8") + @POST("/och-bus-cabin/cab/flow/v1/bus/driver/arrive") + fun arriveSiteStation( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body request: BusUpdateSiteStatusRequest? + ): Observable + + + /** + * 查询车辆配置的所有路线 + */ + @Headers("Content-type:application/json;charset=UTF-8") + @GET("/och-bus-cabin/api/business/v1/driver/BusBindLine") + fun queryBusLines( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Query("sn") sn: String? + ): Observable + + /** + * 查询路线当天的任务 + * @param appId + * @param ticket + * @param lineId 线路id + * @return + */ + @Headers("Content-type:application/json;charset=UTF-8") + @GET("/och-bus-cabin/api/business/v1/driver/bus/task/query") + fun queryBusTaskByLineId( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Query("lineId") lineId: String? + ): Observable + + + /** + * 上传轨迹信息 + */ + @Headers("Content-type:application/json;charset=UTF-8") + @POST("/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate") + fun updateOrderRoute( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body data: BusRoutePlanningUpdateReqBean? + ): Observable + + /** + * 中止任务 + * @param appId + * @param ticket + * @param data + * @return + */ + @Headers("Content-type:application/json;charset=UTF-8") + @POST("/och-bus-cabin/cab/flow/v1/bus/driver/abortTask") + fun abortTask( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body data: BusCloseTaskRequest? + ): Observable + + /** + * 任务正常跑完结束 + * @param appId + * @param ticket + * @param data + * @return + */ + @Headers("Content-type:application/json;charset=UTF-8") + @POST("/och-bus-cabin/cab/flow/v1/bus/driver/endTask") + fun endTask( + @Header("appId") appId: String?, + @Header("ticket") ticket: String?, + @Body data: BusCloseTaskRequest? + ): Observable +} + diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/OrderServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/OrderServiceManager.kt new file mode 100644 index 0000000000..01a7ba3709 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/OrderServiceManager.kt @@ -0,0 +1,234 @@ +package com.mogo.och.weaknet.repository.net.impl.bussaas + +import android.content.Context +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry +import com.mogo.och.weaknet.bean.response.BusRoutesResponse +import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusRoutePlanningUpdateReqBean +import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse + +/** + * @author: wangmingjun + * @date: 2021/10/20 + */ +object OrderServiceManager { + + private val M_SAAS_SERVICE: ISAASApiService = + MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( + ISAASApiService::class.java + ) + + /** + * 查询小巴车当前任务 + * @param context + * @param callback + */ + @JvmStatic + fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback?) { + //获取当前高德坐标 + + M_SAAS_SERVICE.queryBusRoutes( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + SharedPrefsMgr.getInstance().sn + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes")) + } + + /** + * 重置线路站点 + * @param context + * @param taskId + * @param callback + */ + @JvmStatic + fun switchLine( + context: Context, + taskId: Int, + callback: OchCommonServiceCallback? + ) { + M_SAAS_SERVICE.switchLine( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.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?) { + + M_SAAS_SERVICE.abortTask( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.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?) { + + M_SAAS_SERVICE.endTask( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.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? + ) { + M_SAAS_SERVICE.leaveStation( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) + ) + .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? + ) { + M_SAAS_SERVICE.arriveSiteStation( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) + + } + + @JvmStatic + fun queryBusLines( + context: Context, + callback: OchCommonServiceCallback? + ) { + + M_SAAS_SERVICE.queryBusLines( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + SharedPrefsMgr.getInstance().sn + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) + + + } + + @JvmStatic + fun queryBusTaskByLineId( + context: Context, + lineId: String?, + callback: OchCommonServiceCallback? + ) { + M_SAAS_SERVICE.queryBusTaskByLineId( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + lineId + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) + } + + @JvmStatic + fun updateOrderRoute( + context: Context, + lineId: Int, + startSiteId: Int, + endSiteId: Int, + points: List, + callback: OchCommonServiceCallback? + ) { + val pointsResult = mutableListOf() + points.forEach { + val result = BusRoutePlanningUpdateReqBean.Result() + result.latitude = it.latitude; + result.longitude = it.longitude; + pointsResult.add(result); + } + + M_SAAS_SERVICE.updateOrderRoute( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusRoutePlanningUpdateReqBean( + SharedPrefsMgr.getInstance().sn, lineId, startSiteId, endSiteId, pointsResult + ) + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderRoute")) + + } + + /** + * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度 + * @param context + * @param lon + * @param lat + * @param callback + */ + @JvmStatic + fun runCarHeartbeat( + context: Context, lon: Double, lat: Double, + callback: OchCommonServiceCallback? + ) { + + } + +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/IBascApiService.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/IBascApiService.java new file mode 100644 index 0000000000..74fd38375f --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/IBascApiService.java @@ -0,0 +1,112 @@ +package com.mogo.och.weaknet.repository.net.impl.shuttle; + +import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest; +import com.mogo.och.weaknet.bean.response.BusRoutesResponse; +import com.mogo.och.weaknet.bean.response.WriteOffCountResponse; +import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest; +import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest; +import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest; +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse; +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse; + +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 + *

+ */ +public interface IBascApiService { + /** + * 查询当前运行任务 + * + * @param request 请求参数 + * @return 接口返回数据 + */ + @Headers( {"Content-Type:application/json;charset=UTF-8"} ) + @POST( "/och-shuttle-cabin/api/business/v1/driver/lineDataWithDriver/query" ) + Observable 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 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 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 arriveSiteStation(@Header ("appId") String appId,@Header("ticket") String ticket,@Body BusUpdateSiteStatusRequest request); + + /** + * 查询车辆配置的所有路线 + * @param appId + * @param ticket + * @param sn + * @return + */ + @GET("/och-shuttle-cabin/api/business/v1/driver/bindLine/query") + Observable 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 queryBusTaskByLineId(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("lineId") Long lineId); + + /** + * 中止任务 + * @param appId + * @param ticket + * @param data + * @return + */ + @POST("/och-shuttle-cabin/api/flow/v1/driver/abortTask") + Observable 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 endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); + + + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @GET("och-shuttle-cabin/api/business/v1/task/writeOffCount") + Observable writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("taskId") String taskId, @Query("siteId") String siteId); + +} + diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/OrderServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/OrderServiceManager.kt new file mode 100644 index 0000000000..8f1072c143 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/OrderServiceManager.kt @@ -0,0 +1,209 @@ +package com.mogo.och.weaknet.repository.net.impl.shuttle + +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.commons.storage.SharedPrefsMgr +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonNet +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformIoTry +import com.mogo.och.common.module.network.interceptor.transformTry +import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest +import com.mogo.och.weaknet.bean.response.BusRoutesResponse +import com.mogo.och.weaknet.bean.response.WriteOffCountResponse +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest +import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse +import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse +import io.reactivex.Observable + +/** + * @author: wangmingjun + * @date: 2021/10/20 + */ +object OrderServiceManager { + + private val mService: IBascApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create( + IBascApiService::class.java + ) + + + /** + * 查询小巴车当前任务 + * @param context + * @param callback + */ + @JvmStatic + fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback?) { + //获取当前高德坐标 + mService.queryBusRoutes( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusQueryLineStationsRequest() + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes")) + } + + /** + * 重置线路站点 + * @param context + * @param taskId + * @param callback + */ + @JvmStatic + fun switchLine( + context: Context, + taskId: Int, + callback: OchCommonServiceCallback? + ) { + mService.switchLine( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.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?) { + mService.abortTask( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.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?) { + mService.endTask( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.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, + writeVersion: Long, + callback: OchCommonServiceCallback? + ) { + mService.leaveStation( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusUpdateSiteStatusRequest(taskId, siteId, seq,writeVersion) + ) + .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, writeVersion: Long, + callback: OchCommonServiceCallback? + ) { + mService.arriveSiteStation( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusUpdateSiteStatusRequest(taskId, siteId, seq, writeVersion) + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) + } + + @JvmStatic + fun queryBusLines(context: Context, callback: OchCommonServiceCallback?) { + mService.queryBusLines( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + SharedPrefsMgr.getInstance().sn + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) + } + + @JvmStatic + fun queryBusLines(): Observable?> { + return mService.queryBusLines( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + SharedPrefsMgr.getInstance().sn + ) .transformTry() + .flatMap(OchCommonNet("queryBusLines",false)) + .flatMap { + Observable.just(it.data) + } + + } + @JvmStatic + fun queryBusTaskByLineId( + lineId: Long?) :Observable?> { + return mService.queryBusTaskByLineId( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + lineId + ) .transformTry() + .flatMap(OchCommonNet("queryBusLines",false)) + .flatMap { + Observable.just(it.data) + } + } + + @JvmStatic + fun queryWriteOffCountByLineIdAndSiteId( + context: Context, + taskId: String?, + siteId: String?, + callback: OchCommonServiceCallback? + ) { + mService.writeOffCount( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + taskId, + siteId + ) + .transformIoTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount")) + } +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/ShuttleRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/ShuttleRepository.kt new file mode 100644 index 0000000000..584ebe7177 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/ShuttleRepository.kt @@ -0,0 +1,26 @@ +package com.mogo.och.weaknet.repository.net.impl.shuttle + +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.net.IRepository +import io.reactivex.Observable + +class ShuttleRepository: IRepository { + + init { + + } + + override fun queryCanUseLine(): Observable?> { + return OrderServiceManager.queryBusLines() + } + + override fun queryCanUserTask(lineId: Long): Observable?> { + return OrderServiceManager.queryBusTaskByLineId(lineId) + } + + companion object{ + + } + +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/shuttlesaas/IBascApiService.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/IBascApiService.java similarity index 97% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/shuttlesaas/IBascApiService.java rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/IBascApiService.java index 064c922b74..c57d5a4965 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/shuttlesaas/IBascApiService.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/IBascApiService.java @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.repository.net.shuttlesaas; +package com.mogo.och.weaknet.repository.net.impl.shuttlesaas; import com.mogo.eagle.core.data.BaseData; import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest; diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/shuttlesaas/OrderServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/OrderServiceManager.kt similarity index 98% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/shuttlesaas/OrderServiceManager.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/OrderServiceManager.kt index edb15b1db8..367d1c86d2 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/shuttlesaas/OrderServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/OrderServiceManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.repository.net.shuttlesaas +package com.mogo.och.weaknet.repository.net.impl.shuttlesaas import android.content.Context import com.mogo.cloud.passport.MoGoAiCloudClientConfig diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/ShuttleSaasRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/ShuttleSaasRepository.kt new file mode 100644 index 0000000000..efeafaa4f5 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/ShuttleSaasRepository.kt @@ -0,0 +1,20 @@ +package com.mogo.och.weaknet.repository.net.impl.shuttlesaas + +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.db.repository.LineDb +import com.mogo.och.weaknet.repository.db.repository.TaskDb +import com.mogo.och.weaknet.repository.net.IRepository +import io.reactivex.Observable + +class ShuttleSaasRepository: IRepository { + + override fun queryCanUseLine(): Observable?>? { + return LineDb.queryCanUseLine() + } + + override fun queryCanUserTask(lineId: Long): Observable?>? { + return TaskDb.queryCanUserTask(lineId) + } + +} \ No newline at end of file