[fea]
[司机屏数据源变更]
This commit is contained in:
yangyakun
2024-10-21 18:47:53 +08:00
parent afc03a006d
commit 08b4669b68
25 changed files with 652 additions and 582 deletions

View File

@@ -9,7 +9,7 @@ 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.ShuttleSaasServiceManager
import com.mogo.och.weaknet.repository.net.weaknet.dali.shuttle.DaliShuttleServiceManager
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
import com.mogo.och.weaknet.repository.db.repository.EventDb
import com.mogo.och.weaknet.repository.RepositoryManager
@@ -60,7 +60,7 @@ object EventModel : EventDb.EventCallback {
}
OchChainLogManager.writeChainLogDb("上报event","开始上报:${Thread.currentThread().name}")
val transformDb2Net = ShuttleEventRequest.transformDb2Net(waitUpdateEvent)
ShuttleSaasServiceManager.reportCabinEvent(AbsMogoApplication.getApp()!!,transformDb2Net,object :OchCommonServiceCallback<BaseData>{
RepositoryManager.reportCabinEvent(AbsMogoApplication.getApp()!!,transformDb2Net,object :OchCommonServiceCallback<BaseData?>{
override fun onSuccess(data: BaseData?) {
waitUpdateEvent.forEach {
it.updateStatus = EventDataBean.updated

View File

@@ -28,7 +28,6 @@ import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.db.repository.EventDb
import com.mogo.och.weaknet.repository.RepositoryManager
import com.mogo.och.weaknet.repository.exception.DataException
import com.mogo.och.weaknet.repository.net.shuttlesaas.ShuttleSaasServiceManager
import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable

View File

@@ -26,7 +26,6 @@ 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.RepositoryManager
import com.mogo.och.weaknet.repository.net.shuttlesaas.ShuttleSaasServiceManager
import com.mogo.och.weaknet.util.ShuttleVoiceManager
import io.reactivex.Observable
import io.reactivex.ObservableEmitter

View File

@@ -1,7 +1,9 @@
package com.mogo.och.weaknet.repository
import android.content.Context
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
@@ -27,4 +29,7 @@ interface IRepository {
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback<WriteOffCountResponse>?)
fun queryCarExecutableTaskList(ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>)
fun reportCabinEvent(context: Context?, data: ShuttleEventRequest?, callback: OchCommonServiceCallback<BaseData?>?)
}

View File

@@ -1,19 +1,20 @@
package com.mogo.och.weaknet.repository
import android.content.Context
import com.mogo.commons.env.Project
import com.mogo.commons.env.ProjectUtils
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
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.db.repository.EventDb
import com.mogo.och.weaknet.repository.impl.BusRepository
import com.mogo.och.weaknet.repository.impl.BusSaasRepository
import com.mogo.och.weaknet.repository.impl.ShuttleRepository
import com.mogo.och.weaknet.repository.impl.ShuttleSaasRepository
import com.mogo.och.weaknet.repository.impl.NormalRepository
import com.mogo.och.weaknet.repository.impl.WeaknetRepository
import io.reactivex.Observable
object RepositoryManager {
@@ -22,19 +23,32 @@ 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()
when (ProjectUtils.getProjectType()) {
Project.SAAS -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
repository = WeaknetRepository()
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
repository = WeaknetRepository()
}
}
}else {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
repository = ShuttleRepository()
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
repository = BusRepository()
Project.DALI -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
repository = WeaknetRepository()
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
repository = NormalRepository()
}
}
Project.MOGO -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
repository = NormalRepository()
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
repository = NormalRepository()
}
}
else->{}
}
}
fun loadCurrentTaskInfo():Observable<Boolean>?{
@@ -90,9 +104,19 @@ object RepositoryManager {
fun queryCarExecutableTaskList(
ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>
) {
if (repository is ShuttleSaasRepository) {
if (repository is WeaknetRepository) {
repository.queryCarExecutableTaskList(ochCommonServiceCallback)
}
}
fun reportCabinEvent(
context: Context?,
data: ShuttleEventRequest?,
callback: OchCommonServiceCallback<BaseData?>?
){
if (repository is WeaknetRepository) {
repository.reportCabinEvent(context,data,callback)
}
}
}

View File

@@ -6,7 +6,7 @@ import androidx.room.PrimaryKey
import com.google.gson.annotations.SerializedName
@Entity(tableName = TaskDataBean.taskDataTable)
class TaskDataBean(
data class TaskDataBean(
@PrimaryKey(autoGenerate = true)
@SerializedName("idtemp")

View File

@@ -1,140 +0,0 @@
package com.mogo.och.weaknet.repository.impl
import android.content.Context
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.network.OchCommonServiceCallback
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.data.bean.ContraiInfo
import com.mogo.och.data.bean.LineInfo
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.IRepository
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.net.bus.BusServiceManager
import com.mogo.och.weaknet.repository.net.shuttle.ShuttleServiceManager
import io.reactivex.Observable
class BusRepository: IRepository {
override fun loadCurrentTaskInfo(): Observable<Boolean>? {
return BusServiceManager.queryBusRoutes()
?.flatMap { busRoutesResult ->
if (!busRoutesResult.sites.isNullOrEmpty() && busRoutesResult.sites.size > 1) {
OchChainLogManager.writeChainLogDb(
"业务数据",
"本地没有正在运行的数据,服务器端有${busRoutesResult}"
)
val result = mutableListOf<BusStationBean>()
var temp: BusStationBean? = null
var currentStationIndex = -1
var lineInfo: LineInfo?=null
busRoutesResult.sites.forEachIndexed { index, taskAndsite ->
temp = BusStationBean()
temp?.drivingStatus = (taskAndsite.drivingStatus ?: 0)
temp?.lat = (taskAndsite.lat ?: 0.0)
temp?.lon = (taskAndsite.lon ?: 0.0)
temp?.gcjLat = (taskAndsite.gcjLat ?: 0.0)
temp?.gcjLon = (taskAndsite.gcjLon ?: 0.0)
temp?.introduction = taskAndsite.introduction
temp?.isLeaving = taskAndsite.isLeaving
temp?.name = taskAndsite.name
temp?.nameKr = taskAndsite.nameKr
temp?.isPlayTts = java.lang.Boolean.TRUE == taskAndsite.isPlayTts
temp?.seq = (taskAndsite.seq ?: 0)
temp?.siteId = if (taskAndsite.siteId == null) 0 else taskAndsite.siteId!!.toInt()
result.add(temp!!)
// 正在进行中的任务
if (temp!!.drivingStatus == TaskSiteDataBean.drivingStatusCurrent) {
currentStationIndex = index
}
// 线路信息
if (lineInfo == null && busRoutesResult.name != null) {
lineInfo = LineInfo(busRoutesResult.lineId.toLong(), busRoutesResult.name)
}
lineInfo?.multiMap?.put("taskInfo", LineModel.getTaskTime())
}
LineManager.setLineInfo(lineInfo)
LineManager.setContraiInfo(
ContraiInfo(busRoutesResult.lineId.toLong()
,busRoutesResult.csvFileUrl,busRoutesResult.csvFileMd5,
busRoutesResult.txtFileUrl,busRoutesResult.txtFileMd5,
busRoutesResult.contrailSaveTime)
)
val tempTask =TaskDataBean()
tempTask.taskId = busRoutesResult.taskId.toLong()
tempTask.taskStartTime = busRoutesResult.taskTime
tempTask.lineId = busRoutesResult.lineId.toLong()
LineModel.currentTask = tempTask
LineModel.stationList = result
LineModel.startStationIndex = currentStationIndex
LineModel.stationList?.let { stationlist->
val startStation = stationlist[LineModel.startStationIndex]
if (LineModel.startStationIndex < stationlist.size-1) {
val endStation = stationlist[LineModel.startStationIndex + 1]
LineManager.setStartAndEndStation(startStation,endStation)
}
}
return@flatMap Observable.just(true)
}
return@flatMap Observable.just(false)
}
}
override fun queryCanUseLine(): Observable<List<LineDataBean>?>? {
return BusServiceManager.queryBusLines()
}
override fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?> {
return BusServiceManager.queryBusTaskByLineId(lineId)
}
override fun startTask(
taskId: Long,
lineId: Long,
taskTime: Long,
lineName: String
): Observable<Boolean>? {
return BusServiceManager.switchLine(taskId)
}
override fun leaveStation(
seq: Int,
siteId: Long,
taskId: Long,
lineId: Long,
taskStartTime: Long
): Observable<Boolean>? {
return BusServiceManager.leaveStation(seq, siteId, taskId, System.currentTimeMillis())
}
override fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable<Boolean>? {
return BusServiceManager.arriveSiteStation(
seq,
siteId,
taskId,
System.currentTimeMillis()
)
}
override fun endTask(taskId: Long): Observable<Boolean>? {
return BusServiceManager.endTask(taskId)
}
override fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback<WriteOffCountResponse>?) {
BusServiceManager.writeOffCount(context,taskId,siteId,callback)
}
override fun queryCarExecutableTaskList(ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>) {
}
}

View File

@@ -1,12 +1,18 @@
package com.mogo.och.weaknet.repository.impl
import android.content.Context
import com.mogo.commons.env.Project
import com.mogo.commons.env.ProjectUtils
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
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.network.OchCommonServiceCallback
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.data.bean.ContraiInfo
import com.mogo.och.data.bean.LineInfo
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.model.LineModel
@@ -14,13 +20,45 @@ import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.IRepository
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.net.bussaas.BusSaasServiceManager
import com.mogo.och.weaknet.repository.net.exception.NetException
import com.mogo.och.weaknet.repository.net.normal.NormalNetInterface
import com.mogo.och.weaknet.repository.net.normal.dali.bus.DaliBusServiceManager
import com.mogo.och.weaknet.repository.net.normal.mogo.bus.MogoBusServiceManager
import com.mogo.och.weaknet.repository.net.normal.mogo.shuttle.MogoShuttleServiceManager
import com.mogo.och.weaknet.repository.net.weaknet.saas.bus.SaasBusServiceManager
import io.reactivex.Observable
class BusSaasRepository: IRepository {
class NormalRepository: IRepository {
private lateinit var normalNetInterface: NormalNetInterface
init {
when (ProjectUtils.getProjectType()) {
Project.SAAS -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
throw NetException("非缓存weakNetInterface 初始化环境错误 isBus")
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
throw NetException("非缓存weakNetInterface 初始化环境错误 isBus")
}
}
Project.DALI -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
throw NetException("非缓存weakNetInterface 初始化环境错误 isBus")
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
normalNetInterface = DaliBusServiceManager()
}
}
Project.MOGO -> {
normalNetInterface = MogoBusServiceManager()
}
else->{
normalNetInterface = MogoShuttleServiceManager()
}
}
}
override fun loadCurrentTaskInfo(): Observable<Boolean>? {
return BusSaasServiceManager.queryBusRoutes()
return SaasBusServiceManager.queryBusRoutes()
?.flatMap { busRoutesResult ->
if (!busRoutesResult.sites.isNullOrEmpty() && busRoutesResult.sites.size > 1) {
OchChainLogManager.writeChainLogDb(
@@ -88,11 +126,11 @@ class BusSaasRepository: IRepository {
}
override fun queryCanUseLine(): Observable<List<LineDataBean>?>? {
return BusSaasServiceManager.queryBusLines()
return normalNetInterface.queryBusLines()
}
override fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?>? {
return BusSaasServiceManager.queryBusTaskByLineId(lineId)
return normalNetInterface.queryBusTaskByLineId(lineId)
}
override fun startTask(
@@ -101,7 +139,7 @@ class BusSaasRepository: IRepository {
taskTime: Long,
lineName: String
): Observable<Boolean>? {
return BusSaasServiceManager.switchLine(taskId)
return normalNetInterface.switchLine(taskId)
}
override fun leaveStation(
@@ -111,11 +149,11 @@ class BusSaasRepository: IRepository {
lineId: Long,
taskStartTime: Long
): Observable<Boolean>? {
return BusSaasServiceManager.leaveStation(seq, siteId, taskId, System.currentTimeMillis())
return normalNetInterface.leaveStation(seq, siteId, taskId, System.currentTimeMillis())
}
override fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable<Boolean>? {
return BusSaasServiceManager.arriveSiteStation(
return normalNetInterface.arriveSiteStation(
seq,
siteId,
taskId,
@@ -124,7 +162,7 @@ class BusSaasRepository: IRepository {
}
override fun endTask(taskId: Long): Observable<Boolean>? {
return BusSaasServiceManager.endTask(taskId)
return normalNetInterface.endTask(taskId)
}
override fun queryWriteoffCount(
@@ -133,12 +171,20 @@ class BusSaasRepository: IRepository {
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
BusSaasServiceManager.writeOffCount(context,taskId,siteId,callback)
}
override fun queryCarExecutableTaskList(ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>) {
}
override fun reportCabinEvent(
context: Context?,
data: ShuttleEventRequest?,
callback: OchCommonServiceCallback<BaseData?>?
) {
}
}

View File

@@ -1,136 +0,0 @@
package com.mogo.och.weaknet.repository.impl
import android.content.Context
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.network.OchCommonServiceCallback
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.data.bean.ContraiInfo
import com.mogo.och.data.bean.LineInfo
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.model.LineModel
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.IRepository
import com.mogo.och.weaknet.repository.net.shuttle.ShuttleServiceManager
import io.reactivex.Observable
class ShuttleRepository: IRepository {
override fun loadCurrentTaskInfo(): Observable<Boolean>? {
return ShuttleServiceManager.queryBusRoutes()
?.flatMap { busRoutesResult ->
if (!busRoutesResult.sites.isNullOrEmpty() && busRoutesResult.sites.size > 1) {
OchChainLogManager.writeChainLogDb(
"业务数据",
"本地没有正在运行的数据,服务器端有${busRoutesResult}"
)
val result = mutableListOf<BusStationBean>()
var temp: BusStationBean? = null
var currentStationIndex = -1
var lineInfo:LineInfo?=null
busRoutesResult.sites.forEachIndexed { index, taskAndsite ->
temp = BusStationBean()
temp?.drivingStatus = (taskAndsite.drivingStatus ?: 0)
temp?.lat = (taskAndsite.lat ?: 0.0)
temp?.lon = (taskAndsite.lon ?: 0.0)
temp?.gcjLat = (taskAndsite.gcjLat ?: 0.0)
temp?.gcjLon = (taskAndsite.gcjLon ?: 0.0)
temp?.introduction = taskAndsite.introduction
temp?.isLeaving = taskAndsite.isLeaving
temp?.name = taskAndsite.name
temp?.nameKr = taskAndsite.nameKr
temp?.isPlayTts = java.lang.Boolean.TRUE == taskAndsite.isPlayTts
temp?.seq = (taskAndsite.seq ?: 0)
temp?.siteId = if (taskAndsite.siteId == null) 0 else taskAndsite.siteId!!.toInt()
result.add(temp!!)
// 正在进行中的任务
if (temp!!.drivingStatus == TaskSiteDataBean.drivingStatusCurrent) {
currentStationIndex = index
}
// 线路信息
if (lineInfo == null && busRoutesResult.name != null) {
lineInfo = LineInfo(busRoutesResult.lineId.toLong(), busRoutesResult.name)
}
lineInfo?.multiMap?.put("taskInfo",LineModel.getTaskTime())
}
LineManager.setLineInfo(lineInfo)
LineManager.setContraiInfo(ContraiInfo(busRoutesResult.lineId.toLong()
,busRoutesResult.csvFileUrl,busRoutesResult.csvFileMd5,
busRoutesResult.txtFileUrl,busRoutesResult.txtFileMd5,
busRoutesResult.contrailSaveTime))
val tempTask =TaskDataBean()
tempTask.taskId = busRoutesResult.taskId.toLong()
tempTask.taskStartTime = busRoutesResult.taskTime
tempTask.lineId = busRoutesResult.lineId.toLong()
LineModel.currentTask = tempTask
LineModel.stationList = result
LineModel.startStationIndex = currentStationIndex
LineModel.stationList?.let { stationlist->
val startStation = stationlist[LineModel.startStationIndex]
if (LineModel.startStationIndex < stationlist.size-1) {
val endStation = stationlist[LineModel.startStationIndex + 1]
LineManager.setStartAndEndStation(startStation,endStation)
}
}
return@flatMap Observable.just(true)
}
return@flatMap Observable.just(false)
}
}
override fun queryCanUseLine(): Observable<List<LineDataBean>?> {
return ShuttleServiceManager.queryBusLines()
}
override fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?> {
return ShuttleServiceManager.queryBusTaskByLineId(lineId)
}
override fun startTask(taskId: Long, lineId: Long, taskTime: Long, lineName: String): Observable<Boolean>? {
return ShuttleServiceManager.switchLine(taskId)
}
override fun leaveStation(
seq: Int,
siteId: Long,
taskId: Long,
lineId: Long,
taskStartTime: Long
): Observable<Boolean>? {
return ShuttleServiceManager.leaveStation(seq, siteId, taskId, System.currentTimeMillis())
}
override fun arriveStation(seq: Int, siteId: Long, taskId: Long, ): Observable<Boolean>? {
return ShuttleServiceManager.arriveSiteStation(
seq,
siteId,
taskId,
System.currentTimeMillis()
)
}
override fun endTask(taskId: Long): Observable<Boolean>? {
return ShuttleServiceManager.endTask(taskId)
}
override fun queryWriteoffCount(
context: Context,
taskId: Long,
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
ShuttleServiceManager.writeOffCount(context,taskId,siteId,callback)
}
override fun queryCarExecutableTaskList(ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>) {
}
}

View File

@@ -2,10 +2,16 @@ package com.mogo.och.weaknet.repository.impl
import android.content.Context
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.env.Project
import com.mogo.commons.env.ProjectUtils
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
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.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.BusRoutesResponse
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
@@ -21,12 +27,43 @@ 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.IRepository
import com.mogo.och.weaknet.repository.net.shuttlesaas.ShuttleSaasServiceManager
import com.mogo.och.weaknet.repository.net.exception.NetException
import com.mogo.och.weaknet.repository.net.weaknet.WeakNetInterface
import com.mogo.och.weaknet.repository.net.weaknet.dali.shuttle.DaliShuttleServiceManager
import com.mogo.och.weaknet.repository.net.weaknet.saas.bus.SaasBusServiceManager
import io.reactivex.Observable
class ShuttleSaasRepository : IRepository {
class WeaknetRepository : IRepository {
private val TAG = "ShuttleSaasRepository"
private val context = AbsMogoApplication.getApp()
private lateinit var weakNetInterface: WeakNetInterface
init {
when (ProjectUtils.getProjectType()) {
Project.SAAS -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
weakNetInterface = DaliShuttleServiceManager
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
weakNetInterface = SaasBusServiceManager
}
}
Project.DALI -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
weakNetInterface = DaliShuttleServiceManager
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
throw NetException("缓存weakNetInterface 初始化环境错误 isBus")
}
}
Project.MOGO -> {
throw NetException("缓存weakNetInterface 初始化环境错误 MOGO")
}
else->{
throw NetException("缓存weakNetInterface 初始化环境错误 未知")
}
}
}
override fun loadCurrentTaskInfo(): Observable<Boolean>? {
return Observable.just(123)
@@ -110,7 +147,7 @@ class ShuttleSaasRepository : IRepository {
}
private fun loadServerRuningTask(): Observable<Boolean>? {
return ShuttleSaasServiceManager.queryBusRoutes()?.flatMap { busRoutesResult->
return weakNetInterface.queryBusRoutes()?.flatMap { busRoutesResult->
if (!busRoutesResult.sites.isNullOrEmpty() && busRoutesResult.sites.size > 1) {
val queryTaskById = TaskDb.queryTaskById(busRoutesResult.taskId.toLong())
if (queryTaskById == null || queryTaskById.status != TaskDataBean.used) {
@@ -280,12 +317,20 @@ class ShuttleSaasRepository : IRepository {
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
ShuttleSaasServiceManager.queryBusTaskByLineId(context,taskId.toString(),siteId.toString(),callback)
weakNetInterface.writeOffCount(context,taskId.toString(),siteId.toString(),callback)
}
override fun queryCarExecutableTaskList(
ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>
) {
ShuttleSaasServiceManager.queryCarExecutableTaskList(context,ochCommonServiceCallback)
weakNetInterface.queryCarExecutableTaskList(context,ochCommonServiceCallback)
}
override fun reportCabinEvent(
context: Context?,
data: ShuttleEventRequest?,
callback: OchCommonServiceCallback<BaseData?>?
) {
weakNetInterface.reportCabinEvent(context,data,callback)
}
}

View File

@@ -0,0 +1,6 @@
package com.mogo.och.weaknet.repository.net.exception
class NetException: RuntimeException {
constructor() : super()
constructor(message: String?) : super(message)
}

View File

@@ -0,0 +1,31 @@
package com.mogo.och.weaknet.repository.net.normal;
import android.content.Context;
import com.mogo.och.common.module.network.OchCommonServiceCallback;
import com.mogo.och.data.bean.BusRoutesResult;
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 java.util.List;
import io.reactivex.Observable;
public interface NormalNetInterface {
Observable<BusRoutesResult> queryBusRoutes();
Observable<Boolean> switchLine(long taskId);
Observable<Boolean> endTask(long taskId);
Observable<Boolean> leaveStation(int seq, long siteId, long taskId, long writeVersion);
Observable<Boolean> arriveSiteStation(int seq, long siteId, long taskId, long writeVersion);
Observable<List<LineDataBean>> queryBusLines();
Observable<List<TaskDataBean>> queryBusTaskByLineId(long lineId);
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.bus
package com.mogo.och.weaknet.repository.net.normal.dali.bus
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
@@ -18,25 +18,25 @@ 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.normal.NormalNetInterface
import io.reactivex.Observable
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object BusServiceManager {
class DaliBusServiceManager: NormalNetInterface {
private val mService: IBusApiService =
private val mService: IDaliBusApiService =
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
IBusApiService::class.java
IDaliBusApiService::class.java
)
/**
* 查询小巴车当前任务
*/
@JvmStatic
fun queryBusRoutes(): Observable<BusRoutesResult>? {
override fun queryBusRoutes(): Observable<BusRoutesResult>? {
return mService.queryBusRoutes(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
@@ -52,8 +52,7 @@ object BusServiceManager {
* 重置线路站点
* @param taskId
*/
@JvmStatic
fun switchLine(
override fun switchLine(
taskId: Long,
): Observable<Boolean>? {
return mService.switchLine(
@@ -67,29 +66,11 @@ object BusServiceManager {
}
}
// /**
// * 中断当前任务
// * @param context
// * @param taskId
// * @param callback
// */
// @JvmStatic
// fun abortTask(context: Context, taskId: Long, callback: OchCommonServiceCallback<BaseData>?) {
// M_SERVICE.abortTask(
// MoGoAiCloudClientConfig.getInstance().serviceAppId,
// SharedPrefsMgr.getInstance().token,
// BusCloseTaskRequest(taskId)
// )
// .transformTry()
// .subscribe(OchCommonSubscribeImpl(context, callback, "abortTask"))
// }
/**
* 正常结束任务
* @param taskId
*/
@JvmStatic
fun endTask(taskId: Long): Observable<Boolean>? {
override fun endTask(taskId: Long): Observable<Boolean>? {
return mService.endTask(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
@@ -106,13 +87,7 @@ object BusServiceManager {
* @param seq
* @param siteId
*/
@JvmStatic
fun leaveStation(
seq: Int,
siteId: Long,
taskId: Long,
writeVersion: Long,
): Observable<Boolean>? {
override fun leaveStation(seq: Int, siteId: Long, taskId: Long, writeVersion: Long, ): Observable<Boolean>? {
return mService.leaveStation(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
@@ -129,8 +104,7 @@ object BusServiceManager {
* @param seq
* @param siteId
*/
@JvmStatic
fun arriveSiteStation(
override fun arriveSiteStation(
seq: Int, siteId: Long, taskId: Long, writeVersion: Long,
): Observable<Boolean>? {
return mService.arriveSiteStation(
@@ -145,8 +119,7 @@ object BusServiceManager {
}
}
@JvmStatic
fun queryBusLines(): Observable<List<LineDataBean>?> {
override fun queryBusLines(): Observable<List<LineDataBean>?> {
return mService.queryBusLines(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
@@ -159,8 +132,7 @@ object BusServiceManager {
}
@JvmStatic
fun queryBusTaskByLineId(lineId: Long?) :Observable<List<TaskDataBean>?> {
override fun queryBusTaskByLineId(lineId: Long) :Observable<List<TaskDataBean>?> {
return mService.queryBusTaskByLineId(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
@@ -172,23 +144,4 @@ object BusServiceManager {
}
}
/**
*
*/
@JvmStatic
fun writeOffCount(
context: Context,
taskId: Long,
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
mService.writeOffCount(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
taskId,
siteId
)
.transformIoTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.bus
package com.mogo.och.weaknet.repository.net.normal.dali.bus
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
@@ -27,7 +27,7 @@ import retrofit2.http.Query
*
* wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
*/
interface IBusApiService {
interface IDaliBusApiService {
/**
* 根据车机坐标获取所在区域全部站点信息
*

View File

@@ -1,12 +1,13 @@
package com.mogo.och.weaknet.repository.net.bussaas
package com.mogo.och.weaknet.repository.net.normal.mogo.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.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.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
@@ -25,13 +26,16 @@ import retrofit2.http.Query
*
* wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
*/
interface IBusSaasApiService {
interface IMogoBusApiService {
/**
* 根据车机坐标获取所在区域全部站点信息
*
* @param request 请求参数
* @return 接口返回数据
*/
@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<BusRoutesResponse>
@POST("/autopilot-car-hailing/line/v2/driver/bus/lineDataWithDriver/query")
fun queryBusRoutes(@Header("appId") appId: String?, @Header("ticket") ticket: String?, @Body request: BusQueryLineStationsRequest?): Observable<BusRoutesResponse>
/**
* @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的 不是重置线路中站点的
@@ -39,29 +43,49 @@ interface IBusSaasApiService {
* 开始路线
*/
@Headers("Content-Type:application/json;charset=UTF-8")
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/startTask")
@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<BaseData>
/**
* 离站通知服务器
* @param request
* @return
*/
@Headers("Content-Type:application/json;charset=UTF-8")
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/leave")
@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<BaseData>
/**
* 到站 更新到站信息
* @param request
* @return
*/
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/arrive")
@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<BaseData>
/**
* 查询车辆配置的所有路线
* 车机端上传心跳数据只在出车状态时上传包含高德坐标系经纬度
* @param data
* @return
*/
@Headers("Content-type:application/json;charset=UTF-8")
@GET("/och-bus-cabin/api/business/v1/driver/BusBindLine")
@POST("/autopilot-car-hailing/location/v2/driver/bus/heartbeat")
fun runCarHeartbeat(
@Header("appId") appId: String?,
@Header("ticket") ticket: String?,
@Body data: CarHeartbeatReqBean?
): Observable<BaseData>
/**
* 查询车辆配置的所有路线
* @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<BusQueryLinesResponse>
/**
@@ -71,13 +95,16 @@ interface IBusSaasApiService {
* @param lineId 线路id
* @return
*/
@Headers("Content-type:application/json;charset=UTF-8")
@GET("/och-bus-cabin/api/business/v1/driver/bus/task/query")
@GET("/autopilot-car-hailing/line/v2/driver/bus/task/query")
fun queryBusTaskByLineId(@Header("appId") appId: String?, @Header("ticket") ticket: String?, @Query("lineId") lineId: Long?): Observable<BusQueryLineTaskResponse>
/**
* 上传轨迹信息
* @param appId
* @param ticket
* @param data
* @return
*/
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate")
@@ -87,21 +114,6 @@ interface IBusSaasApiService {
@Body data: BusRoutePlanningUpdateReqBean?
): Observable<BaseData>
/**
* 中止任务
* @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<BaseData>
/**
* 任务正常跑完结束
* @param appId
@@ -110,20 +122,8 @@ interface IBusSaasApiService {
* @return
*/
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/endTask")
@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<BaseData>
/**
* 任务正常跑完结束
* @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 writeOffCount(@Header("appId") appId: String?, @Header("ticket") ticket: String?, @Query("taskId") taskId: Long , @Query("siteId")siteId: Long ): Observable<WriteOffCountResponse>
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.bussaas
package com.mogo.och.weaknet.repository.net.normal.mogo.bus
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
@@ -7,40 +7,38 @@ 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.data.bean.BusRoutesResult
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
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.normal.NormalNetInterface
import io.reactivex.Observable
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object BusSaasServiceManager {
class MogoBusServiceManager: NormalNetInterface {
private val M_SAAS_SERVICE: IBusSaasApiService =
private val mService: IMogoBusApiService =
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
IBusSaasApiService::class.java
IMogoBusApiService::class.java
)
/**
* 查询小巴车当前任务
* @param context
* @param callback
*/
@JvmStatic
fun queryBusRoutes(): Observable<BusRoutesResult>? {
return M_SAAS_SERVICE.queryBusRoutes(
override fun queryBusRoutes(): Observable<BusRoutesResult>? {
return mService.queryBusRoutes(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
SharedPrefsMgr.getInstance().getSn(),
BusQueryLineStationsRequest()
) .transformTry()
.flatMap(OchCommonNet("queryBusRoutes",false))
.flatMap {
@@ -50,15 +48,12 @@ object BusSaasServiceManager {
/**
* 重置线路站点
* @param context
* @param taskId
* @param callback
*/
@JvmStatic
fun switchLine(
override fun switchLine(
taskId: Long,
): Observable<Boolean>? {
return M_SAAS_SERVICE.switchLine(
return mService.switchLine(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusResetDrivingLineRequest(taskId)
@@ -69,34 +64,12 @@ object BusSaasServiceManager {
}
}
// /**
// * 中断当前任务
// * @param context
// * @param taskId
// * @param callback
// */
// @JvmStatic
// fun abortTask(context: Context, taskId: Long, callback: OchCommonServiceCallback<BaseData>?) {
//
// 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(taskId: Long): Observable<Boolean>? {
return M_SAAS_SERVICE.endTask(
override fun endTask(taskId: Long): Observable<Boolean>? {
return mService.endTask(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusCloseTaskRequest(taskId)
@@ -109,19 +82,16 @@ object BusSaasServiceManager {
/**
* 离站上报
* @param context
* @param seq
* @param siteId
* @param callback
*/
@JvmStatic
fun leaveStation(
override fun leaveStation(
seq: Int,
siteId: Long,
taskId: Long,
writeVersion: Long,
): Observable<Boolean>? {
return M_SAAS_SERVICE.leaveStation(
return mService.leaveStation(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusUpdateSiteStatusRequest(taskId, siteId, seq,writeVersion)
@@ -134,16 +104,13 @@ object BusSaasServiceManager {
/**
* 到站更新站点状态
* @param context
* @param seq
* @param siteId
* @param callback
*/
@JvmStatic
fun arriveSiteStation(
override fun arriveSiteStation(
seq: Int, siteId: Long, taskId: Long, writeVersion: Long,
): Observable<Boolean>? {
return M_SAAS_SERVICE.arriveSiteStation(
return mService.arriveSiteStation(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusUpdateSiteStatusRequest(taskId, siteId, seq, writeVersion)
@@ -155,9 +122,9 @@ object BusSaasServiceManager {
}
}
@JvmStatic
fun queryBusLines(): Observable<List<LineDataBean>?> {
return M_SAAS_SERVICE.queryBusLines(
override fun queryBusLines(): Observable<List<LineDataBean>?> {
return mService.queryBusLines(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
SharedPrefsMgr.getInstance().sn
@@ -169,10 +136,8 @@ object BusSaasServiceManager {
}
@JvmStatic
fun queryBusTaskByLineId(
lineId: Long?) :Observable<List<TaskDataBean>?> {
return M_SAAS_SERVICE.queryBusTaskByLineId(
override fun queryBusTaskByLineId(lineId: Long) :Observable<List<TaskDataBean>?> {
return mService.queryBusTaskByLineId(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
lineId
@@ -183,24 +148,4 @@ object BusSaasServiceManager {
}
}
/**
*
*/
@JvmStatic
fun writeOffCount(
context: Context,
taskId: Long,
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
M_SAAS_SERVICE.writeOffCount(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
taskId,
siteId
)
.transformIoTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
}
}

View File

@@ -1,9 +1,8 @@
package com.mogo.och.weaknet.repository.net.shuttle;
package com.mogo.och.weaknet.repository.net.normal.mogo.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;
@@ -24,7 +23,7 @@ import retrofit2.http.Query;
* @author tongchenfei
* <p>
*/
public interface IShuttleApiService {
public interface IMogoShuttleApiService {
/**
* 查询当前运行任务
*
@@ -82,16 +81,6 @@ public interface IShuttleApiService {
@GET("/och-shuttle-cabin/api/business/v1/driver/task/query")
Observable<BusQueryLineTaskResponse> 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<BaseData> abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
/**
* 任务正常跑完结束
* @param appId
@@ -103,10 +92,5 @@ public interface IShuttleApiService {
@POST("/och-shuttle-cabin/api/flow/v1/driver/endTask")
Observable<BaseData> endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@GET("och-vehicle/api/car/v2/device/writeOff")
Observable<WriteOffCountResponse> writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("taskId") long taskId, @Query("siteId") long siteId);
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.shuttle
package com.mogo.och.weaknet.repository.net.normal.mogo.shuttle
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
@@ -7,8 +7,6 @@ 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.data.bean.BusRoutesResult
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
@@ -18,16 +16,17 @@ 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.normal.NormalNetInterface
import io.reactivex.Observable
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object ShuttleServiceManager {
class MogoShuttleServiceManager: NormalNetInterface {
private val mService: IShuttleApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
IShuttleApiService::class.java
private val mService: IMogoShuttleApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
IMogoShuttleApiService::class.java
)
@@ -36,8 +35,7 @@ object ShuttleServiceManager {
* @param context
* @param callback
*/
@JvmStatic
fun queryBusRoutes(): Observable<BusRoutesResult>? {
override fun queryBusRoutes(): Observable<BusRoutesResult>? {
return mService.queryBusRoutes(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
@@ -55,8 +53,7 @@ object ShuttleServiceManager {
* @param taskId
* @param callback
*/
@JvmStatic
fun switchLine(
override fun switchLine(
taskId: Long,
): Observable<Boolean>? {
return mService.switchLine(
@@ -70,31 +67,13 @@ object ShuttleServiceManager {
}
}
// /**
// * 中断当前任务
// * @param context
// * @param taskId
// * @param callback
// */
// @JvmStatic
// fun abortTask(context: Context, taskId: Long, callback: OchCommonServiceCallback<BaseData>?) {
// 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(taskId: Long): Observable<Boolean>? {
override fun endTask(taskId: Long): Observable<Boolean>? {
return mService.endTask(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
@@ -113,8 +92,7 @@ object ShuttleServiceManager {
* @param siteId
* @param callback
*/
@JvmStatic
fun leaveStation(
override fun leaveStation(
seq: Int,
siteId: Long,
taskId: Long,
@@ -138,8 +116,7 @@ object ShuttleServiceManager {
* @param siteId
* @param callback
*/
@JvmStatic
fun arriveSiteStation(
override fun arriveSiteStation(
seq: Int, siteId: Long, taskId: Long, writeVersion: Long,
): Observable<Boolean>? {
return mService.arriveSiteStation(
@@ -155,8 +132,7 @@ object ShuttleServiceManager {
}
@JvmStatic
fun queryBusLines(): Observable<List<LineDataBean>?> {
override fun queryBusLines(): Observable<List<LineDataBean>?> {
return mService.queryBusLines(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
@@ -168,9 +144,8 @@ object ShuttleServiceManager {
}
}
@JvmStatic
fun queryBusTaskByLineId(
lineId: Long?) :Observable<List<TaskDataBean>?> {
override fun queryBusTaskByLineId(
lineId: Long) :Observable<List<TaskDataBean>?> {
return mService.queryBusTaskByLineId(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
@@ -182,24 +157,4 @@ object ShuttleServiceManager {
}
}
/**
* 只发生在大理环境 查询当前站点核销的人数
*/
@JvmStatic
fun writeOffCount(
context: Context,
taskId: Long,
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
mService.writeOffCount(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
taskId,
siteId
)
.transformIoTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
}
}

View File

@@ -0,0 +1,35 @@
package com.mogo.och.weaknet.repository.net.weaknet;
import android.content.Context;
import com.mogo.och.common.module.network.OchCommonServiceCallback;
import com.mogo.och.data.bean.BusRoutesResult;
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest;
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse;
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse;
import com.mogo.eagle.core.data.BaseData;
import io.reactivex.Observable;
public interface WeakNetInterface {
Observable<BusRoutesResult> queryBusRoutes();
void writeOffCount(
Context context ,
String taskId,
String siteId,
OchCommonServiceCallback<WriteOffCountResponse> callback
);
void queryCarExecutableTaskList(
Context context ,
OchCommonServiceCallback<CarExecutableTaskResponse> callback
);
void reportCabinEvent(
Context context ,
ShuttleEventRequest data ,
OchCommonServiceCallback<BaseData> callback
);
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.shuttlesaas
package com.mogo.och.weaknet.repository.net.weaknet.dali.shuttle
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
@@ -12,19 +12,20 @@ import com.mogo.och.common.module.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.network.interceptor.transformIoTry
import com.mogo.och.data.bean.BusRoutesResult
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.net.weaknet.WeakNetInterface
import io.reactivex.Observable
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object ShuttleSaasServiceManager {
object DaliShuttleServiceManager: WeakNetInterface {
private val mService: IShuttleSaasApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
IShuttleSaasApiService::class.java
private val mService: IDaliShuttleApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
IDaliShuttleApiService::class.java
)
@@ -33,8 +34,7 @@ object ShuttleSaasServiceManager {
* @param context
* @param callback
*/
@JvmStatic
fun queryBusRoutes(): Observable<BusRoutesResult?>? {
override fun queryBusRoutes(): Observable<BusRoutesResult?>? {
//获取当前高德坐标
return mService.queryBusRoutes(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
@@ -48,10 +48,9 @@ object ShuttleSaasServiceManager {
}
/**
* 只发生在大理环境 查询当前站点核销的人数
* 只发生在大理和saas环境 查询当前站点核销的人数
*/
@JvmStatic
fun queryBusTaskByLineId(
override fun writeOffCount(
context: Context,
taskId: String?,
siteId: String?,
@@ -70,8 +69,7 @@ object ShuttleSaasServiceManager {
/**
* 同步 线路站点任务自驾轨迹信息
*/
@JvmStatic
fun queryCarExecutableTaskList(
override fun queryCarExecutableTaskList(
context: Context,
callback: OchCommonServiceCallback<CarExecutableTaskResponse>?
) {
@@ -87,8 +85,7 @@ object ShuttleSaasServiceManager {
/**
* 上传 开始线路 滑动出发 到站 完成线路 各个任务到服务器端
*/
@JvmStatic
fun reportCabinEvent(
override fun reportCabinEvent(
context: Context,
data: ShuttleEventRequest,
callback: OchCommonServiceCallback<BaseData>?,

View File

@@ -0,0 +1,59 @@
package com.mogo.och.weaknet.repository.net.weaknet.dali.shuttle;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest;
import com.mogo.och.weaknet.bean.response.BusRoutesResponse;
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse;
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse;
import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* 小巴车相关接口
*
* @author tongchenfei
* <p>
* wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
*/
public interface IDaliShuttleApiService {
/**
* 查询当前运行任务
*
* @param request 请求参数
* @return 接口返回数据
*/
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/och-shuttle-cabin/api/business/v1/driver/lineDataWithDriver/query" )
Observable<BusRoutesResponse> queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request);
/**
* 查询当前站点核销的人数
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@GET("/och-vehicle/api/car/v2/device/writeOff")
Observable<WriteOffCountResponse> writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("taskId") String taskId, @Query("siteId") String siteId);
/**
* 同步 线路、站点、任务、自驾轨迹信息
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@GET("/och-shuttle-cabin/api/flow/v1/queryCarExecutableTaskList")
Observable<CarExecutableTaskResponse> queryCarExecutableTaskList(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
/**
* 上传 开始线路 滑动出发 到站 完成线路 各个任务到服务器端
*/
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/och-shuttle-cabin/api/flow/v1/reportCabinEvent" )
Observable<BaseData> reportCabinEvent(@Header ("appId") String appId, @Header("ticket") String ticket, @Body ShuttleEventRequest request);
}

View File

@@ -0,0 +1,59 @@
package com.mogo.och.weaknet.repository.net.weaknet.saas.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.bean.response.CarExecutableTaskResponse;
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest;
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse;
import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* 小巴车相关接口
*
* @author tongchenfei
* <p>
* wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
*/
public interface ISaasBusApiService {
/**
* 查询当前运行任务
*
* @param request 请求参数
* @return 接口返回数据
*/
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/och-bus-cabin/api/business/v1/driver/bus/lineDataWithDriver/query" )
Observable<BusRoutesResponse> queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request);
/**
* 查询当前站点核销的人数
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@GET("/och-vehicle/api/car/v2/device/writeOff")
Observable<WriteOffCountResponse> writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("taskId") String taskId, @Query("siteId") String siteId);
/**
* 同步 线路、站点、任务、自驾轨迹信息
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@GET("/och-vehicle/cabin/queryCarExecutableTaskList")
Observable<CarExecutableTaskResponse> queryCarExecutableTaskList(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
/**
* 上传 开始线路 滑动出发 到站 完成线路 各个任务到服务器端
*/
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/och-vehicle/cabin/reportCabinEvent" )
Observable<BaseData> reportCabinEvent(@Header ("appId") String appId, @Header("ticket") String ticket, @Body ShuttleEventRequest request);
}

View File

@@ -0,0 +1,102 @@
package com.mogo.och.weaknet.repository.net.weaknet.saas.bus
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.network.MoGoRetrofitFactory
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.data.bean.BusRoutesResult
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.net.weaknet.WeakNetInterface
import io.reactivex.Observable
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object SaasBusServiceManager: WeakNetInterface {
private val mService: ISaasBusApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
ISaasBusApiService::class.java
)
/**
* 查询小巴车当前任务
* @param context
* @param callback
*/
override fun queryBusRoutes(): Observable<BusRoutesResult?>? {
//获取当前高德坐标
return mService.queryBusRoutes(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusQueryLineStationsRequest()
) .transformIoTry()
.flatMap(OchCommonNet("queryBusRoutes",false))
.flatMap {
Observable.just(it.data?:BusRoutesResult())
}
}
/**
* 只发生在大理和saas环境 查询当前站点核销的人数
*/
override fun writeOffCount(
context: Context,
taskId: String?,
siteId: String?,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
mService.writeOffCount(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
taskId,
siteId
)
.transformIoTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
}
/**
* 同步 线路、站点、任务、自驾轨迹信息
*/
override fun queryCarExecutableTaskList(
context: Context,
callback: OchCommonServiceCallback<CarExecutableTaskResponse>?
) {
mService.queryCarExecutableTaskList(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
SharedPrefsMgr.getInstance().sn,
)
.transformIoTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryCarExecutableTaskList"))
}
/**
* 上传 开始线路 滑动出发 到站 完成线路 各个任务到服务器端
*/
override fun reportCabinEvent(
context: Context,
data: ShuttleEventRequest,
callback: OchCommonServiceCallback<BaseData>?,
) {
mService.reportCabinEvent(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
data,
)
.subscribe(OchCommonSubscribeImpl(context, callback, "reportCabinEvent"))
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.shuttlesaas;
package com.mogo.och.weaknet.repository.net.weaknet.saas.shuttle;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;
@@ -22,7 +22,7 @@ import retrofit2.http.Query;
* <p>
* wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
*/
public interface IShuttleSaasApiService {
public interface ISaasShuttleApiService {
/**
* 查询当前运行任务

View File

@@ -0,0 +1,102 @@
package com.mogo.och.weaknet.repository.net.weaknet.saas.shuttle
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.network.MoGoRetrofitFactory
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.data.bean.BusRoutesResult
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.net.weaknet.WeakNetInterface
import io.reactivex.Observable
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object SaasShuttleServiceManager: WeakNetInterface {
private val mService: ISaasShuttleApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
ISaasShuttleApiService::class.java
)
/**
* 查询小巴车当前任务
* @param context
* @param callback
*/
override fun queryBusRoutes(): Observable<BusRoutesResult?>? {
//获取当前高德坐标
return mService.queryBusRoutes(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusQueryLineStationsRequest()
) .transformIoTry()
.flatMap(OchCommonNet("queryBusRoutes",false))
.flatMap {
Observable.just(it.data?:BusRoutesResult())
}
}
/**
* 只发生在大理和saas环境 查询当前站点核销的人数
*/
override fun writeOffCount(
context: Context,
taskId: String?,
siteId: String?,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
mService.writeOffCount(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
taskId,
siteId
)
.transformIoTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
}
/**
* 同步 线路、站点、任务、自驾轨迹信息
*/
override fun queryCarExecutableTaskList(
context: Context,
callback: OchCommonServiceCallback<CarExecutableTaskResponse>?
) {
mService.queryCarExecutableTaskList(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
SharedPrefsMgr.getInstance().sn,
)
.transformIoTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryCarExecutableTaskList"))
}
/**
* 上传 开始线路 滑动出发 到站 完成线路 各个任务到服务器端
*/
override fun reportCabinEvent(
context: Context,
data: ShuttleEventRequest,
callback: OchCommonServiceCallback<BaseData>?,
) {
mService.reportCabinEvent(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
data,
)
.subscribe(OchCommonSubscribeImpl(context, callback, "reportCabinEvent"))
}
}