[fea]
[改造lineRepository]
This commit is contained in:
yangyakun
2024-11-12 15:15:56 +08:00
parent 4a4659e300
commit 13aa8b4d5c
31 changed files with 457 additions and 207 deletions

View File

@@ -19,5 +19,6 @@ enum class DPMsgType(val type: Int) {
TYPE_WRITEOFF_DEVICES_INFO(9), //核销设备信息
TYPE_CHANGE_BUSINESS_TYPE(10), //业务模式切换
TYPE_ENV_CHECK(11), //环境核验
TYPE_WRITEOFF_INFO_DETAIL(13), //核销信息
TYPE_CLIENT_REGISTER(12); //客户端注册 服务端需要
}

View File

@@ -70,6 +70,19 @@ data class WriteOffMsg(
val orderNo: String?
) : BaseDPMsg(DPMsgType.TYPE_WRITEOFF_INFO.type)
data class WriteOffDetialMsg(
val expiryTime: Long?,
val bookingTime: Long?,
val businessType: Int?,
val lineId: Long?,
val remainingTimes: Int?,
val orderNo: String?,
val uid: String?,
val phone: String?,
val ticketSize: String?,
val ticketName: String?,
) : BaseDPMsg(DPMsgType.TYPE_WRITEOFF_INFO_DETAIL.type)
data class WriteOffDevicesMsg(
val isConnectScanner: Boolean?,
val reason: String?

View File

@@ -0,0 +1,3 @@
package com.mogo.och.data.bean
data class WriteOffBean(val orderNo:String,val uid:String,val phone:String)

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.weaknet.dali.shuttle.DaliShuttleServiceManager
import com.mogo.och.weaknet.repository.net.project.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

View File

@@ -146,7 +146,9 @@ object LineModel {
"数据发生变化",
"接口信息发生变化 $lastChangeMd5 new md5${currentRequest}"
)
val startTime = System.currentTimeMillis()
CarExecutableTaskResponse.save2Db(data)
CallerLogger.d(TAG,"更新数据耗时${System.currentTimeMillis()-startTime}___${Thread.currentThread().name}")
RxUtils.createSubscribe(800) {
// 等待写入数据库
mBusLinesCallbackMap.forEach { callback ->

View File

@@ -15,14 +15,18 @@ import com.mogo.och.weaknet.repository.db.MyDataBase
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.NormalRepository
import com.mogo.och.weaknet.repository.impl.WeaknetRepository
import com.mogo.och.weaknet.repository.line.ILineRepository
import com.mogo.och.weaknet.repository.line.impl.NormalRepository
import com.mogo.och.weaknet.repository.line.impl.WeaknetRepository
import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository
import com.mogo.och.weaknet.repository.writeoff.impl.WriteOffCacheRepository
import com.mogo.och.weaknet.repository.writeoff.impl.WriteOffNormallRepository
import io.reactivex.Observable
object RepositoryManager {
private val TAG = "RepositoryManager"
private var repository: IRepository?=null
private var lineRepository: ILineRepository?=null
get() {
if(field==null){
when (ProjectUtils.getProjectType()) {
@@ -59,41 +63,69 @@ object RepositoryManager {
return field
}
private var writeOffRepository: IWriteOffRepository?=null
get() {
if(field==null){
when (ProjectUtils.getProjectType()) {
Project.SAAS -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
field = WriteOffCacheRepository()
CallerLogger.d(TAG,"saas shuttle 核销缓存")
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
field = WriteOffCacheRepository()
CallerLogger.d(TAG,"saas bus 核销缓存")
}
}
Project.DALI -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
field = WriteOffNormallRepository()
CallerLogger.d(TAG,"dali shuttle 不支持核销缓存")
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
field = WriteOffNormallRepository()
CallerLogger.d(TAG,"dali bus 不支持核销缓存")
}
}
else->{}
}
}
return field
}
fun release(){
closeDb()
}
fun loadCurrentTaskInfo():Observable<Boolean>?{
return repository?.loadCurrentTaskInfo()
return lineRepository?.loadCurrentTaskInfo()
}
fun queryCanUseLine() : Observable<List<LineDataBean>?>? {
return repository?.queryCanUseLine()
return lineRepository?.queryCanUseLine()
}
fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?>? {
return repository?.queryCanUserTask(lineId)
return lineRepository?.queryCanUserTask(lineId)
}
fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable<Boolean>? {
return repository?.startTask(taskId,lineId,taskTime,lineName)
return lineRepository?.startTask(taskId,lineId,taskTime,lineName)
}
fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long
): Observable<Boolean>?{
return repository?.leaveStation(seq,siteId,taskId,lineId,taskStartTime)
return lineRepository?.leaveStation(seq,siteId,taskId,lineId,taskStartTime)
}
fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable<Boolean>?{
return repository?.arriveStation(seq,siteId,taskId)
return lineRepository?.arriveStation(seq,siteId,taskId)
}
fun endTask(taskId: Long): Observable<Boolean>?{
return repository?.endTask(taskId)
return lineRepository?.endTask(taskId)
}
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback<WriteOffCountResponse>?){
repository?.queryWriteoffCount(context,taskId,siteId,callback)
writeOffRepository?.queryWriteoffCount(context,taskId,siteId,callback)
}
@@ -123,8 +155,8 @@ object RepositoryManager {
fun queryCarExecutableTaskList(
ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>
) {
if (repository is WeaknetRepository) {
repository?.queryCarExecutableTaskList(ochCommonServiceCallback)
if (lineRepository is WeaknetRepository) {
lineRepository?.queryCarExecutableTaskList(ochCommonServiceCallback)
}
}
@@ -133,19 +165,25 @@ object RepositoryManager {
data: ShuttleEventRequest?,
callback: OchCommonServiceCallback<BaseData?>?
){
if (repository is WeaknetRepository) {
repository?.reportCabinEvent(context,data,callback)
if (lineRepository is WeaknetRepository) {
lineRepository?.reportCabinEvent(context,data,callback)
}
}
fun writeOff(){
writeOffRepository?.writeOffEvent()
}
fun closeDb() {
if (supportDb()) {
MyDataBase.instance?.close()
CallerLogger.d(TAG,"关闭数据库")
MyDataBase.instance = null
CallerLogger.d(TAG,"重置数据库")
repository?.release()
repository = null
lineRepository?.release()
lineRepository = null
writeOffRepository?.release()
writeOffRepository = null
CallerLogger.d(TAG,"重置 repository")
}
}

View File

@@ -1,16 +1,15 @@
package com.mogo.och.weaknet.repository
package com.mogo.och.weaknet.repository.line
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
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import io.reactivex.Observable
interface IRepository {
interface ILineRepository {
fun loadCurrentTaskInfo():Observable<Boolean>?
@@ -26,8 +25,6 @@ interface IRepository {
fun endTask( taskId: Long): Observable<Boolean>?
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,4 +1,4 @@
package com.mogo.och.weaknet.repository.impl
package com.mogo.och.weaknet.repository.line.impl
import android.content.Context
import com.mogo.commons.env.Project
@@ -15,25 +15,23 @@ 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
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.line.ILineRepository
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.net.NetInterface
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 com.mogo.och.weaknet.repository.net.project.dali.bus.DaliBusServiceManager
import com.mogo.och.weaknet.repository.net.project.mogo.bus.MogoBusServiceManager
import com.mogo.och.weaknet.repository.net.project.mogo.shuttle.MogoShuttleServiceManager
import io.reactivex.Observable
class NormalRepository: IRepository {
class NormalRepository: ILineRepository {
private val TAG = "NormalRepository"
private val tag = "NormalRepository"
private var normalNetInterface: NormalNetInterface?=null
private var normalLineInterface: NetInterface?=null
get() {
if(field==null){
when (ProjectUtils.getProjectType()) {
@@ -48,7 +46,7 @@ class NormalRepository: IRepository {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
throw NetException("非缓存weakNetInterface 初始化环境错误 isBus")
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
field = DaliBusServiceManager()
field = DaliBusServiceManager
}
}
Project.MOGO -> {
@@ -67,7 +65,7 @@ class NormalRepository: IRepository {
}
override fun loadCurrentTaskInfo(): Observable<Boolean>? {
return normalNetInterface?.queryBusRoutes()
return normalLineInterface?.queryBusRoutes()
?.flatMap { busRoutesResult ->
if (!busRoutesResult.sites.isNullOrEmpty() && busRoutesResult.sites.size > 1) {
OchChainLogManager.writeChainLogDb(
@@ -75,23 +73,23 @@ class NormalRepository: IRepository {
"本地没有正在运行的数据,服务器端有${busRoutesResult}"
)
val result = mutableListOf<BusStationBean>()
var temp: BusStationBean? = null
var temp: BusStationBean?
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?.drivingStatus = taskAndsite.drivingStatus
temp?.lat = taskAndsite.lat
temp?.lon = taskAndsite.lon
temp?.gcjLat = taskAndsite.gcjLat
temp?.gcjLon = taskAndsite.gcjLon
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()
temp?.seq = taskAndsite.seq
temp?.siteId = taskAndsite.siteId
result.add(temp!!)
// 正在进行中的任务
if (temp!!.drivingStatus == TaskSiteDataBean.drivingStatusCurrent) {
@@ -135,11 +133,11 @@ class NormalRepository: IRepository {
}
override fun queryCanUseLine(): Observable<List<LineDataBean>?>? {
return normalNetInterface?.queryBusLines()
return normalLineInterface?.queryBusLines()
}
override fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?>? {
return normalNetInterface?.queryBusTaskByLineId(lineId)
return normalLineInterface?.queryBusTaskByLineId(lineId)
}
override fun startTask(
@@ -148,7 +146,7 @@ class NormalRepository: IRepository {
taskTime: Long,
lineName: String
): Observable<Boolean>? {
return normalNetInterface?.switchLine(taskId)
return normalLineInterface?.switchLine(taskId)
}
override fun leaveStation(
@@ -158,11 +156,11 @@ class NormalRepository: IRepository {
lineId: Long,
taskStartTime: Long
): Observable<Boolean>? {
return normalNetInterface?.leaveStation(seq, siteId, taskId, System.currentTimeMillis())
return normalLineInterface?.leaveStation(seq, siteId, taskId, System.currentTimeMillis())
}
override fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable<Boolean>? {
return normalNetInterface?.arriveSiteStation(
return normalLineInterface?.arriveSiteStation(
seq,
siteId,
taskId,
@@ -171,16 +169,7 @@ class NormalRepository: IRepository {
}
override fun endTask(taskId: Long): Observable<Boolean>? {
return normalNetInterface?.endTask(taskId)
}
override fun queryWriteoffCount(
context: Context,
taskId: Long,
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
return normalLineInterface?.endTask(taskId)
}
override fun queryCarExecutableTaskList(ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>) {
@@ -196,8 +185,8 @@ class NormalRepository: IRepository {
}
override fun release() {
normalNetInterface=null
CallerLogger.d(TAG,"重置 normalNetInterface")
normalLineInterface=null
CallerLogger.d(tag,"重置 normalNetInterface")
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.impl
package com.mogo.och.weaknet.repository.line.impl
import android.content.Context
import com.mogo.commons.AbsMogoApplication
@@ -14,7 +14,6 @@ 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
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.model.LineModel.currentTask
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
@@ -26,19 +25,19 @@ 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.IRepository
import com.mogo.och.weaknet.repository.line.ILineRepository
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 com.mogo.och.weaknet.repository.net.weaknet.saas.shuttle.SaasShuttleServiceManager
import com.mogo.och.weaknet.repository.net.NetInterface
import com.mogo.och.weaknet.repository.net.project.dali.shuttle.DaliShuttleServiceManager
import com.mogo.och.weaknet.repository.net.project.saas.bus.SaasBusServiceManager
import com.mogo.och.weaknet.repository.net.project.saas.shuttle.SaasShuttleServiceManager
import io.reactivex.Observable
class WeaknetRepository : IRepository {
class WeaknetRepository : ILineRepository {
private val TAG = "ShuttleSaasRepository"
private val context = AbsMogoApplication.getApp()
private var weakNetInterface: WeakNetInterface?=null
private var weakNetInterface: NetInterface?=null
get() {
if(field==null){
when (ProjectUtils.getProjectType()) {
@@ -314,15 +313,6 @@ class WeaknetRepository : IRepository {
}
}
override fun queryWriteoffCount(
context: Context,
taskId: Long,
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
weakNetInterface?.writeOffCount(context,taskId,siteId,callback)
}
override fun queryCarExecutableTaskList(
ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>
) {

View File

@@ -0,0 +1,55 @@
package com.mogo.och.weaknet.repository.net;
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 com.mogo.och.weaknet.repository.db.bean.LineDataBean;
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean;
import java.util.ArrayList;
import java.util.List;
import io.reactivex.Observable;
public interface NetInterface {
default Observable<Boolean> switchLine(long taskId){
return null;
}
default Observable<Boolean> endTask(long taskId){
return Observable.just(true);
}
default Observable<Boolean> leaveStation(int seq, long siteId, long taskId, long writeVersion){
return Observable.just(true);
}
default Observable<Boolean> arriveSiteStation(int seq, long siteId, long taskId, long writeVersion){
return Observable.just(true);
}
default Observable<List<LineDataBean>> queryBusLines(){
return Observable.just(new ArrayList<>());
}
default Observable<List<TaskDataBean>> queryBusTaskByLineId(long lineId){
return Observable.just(new ArrayList<>());
}
default Observable<BusRoutesResult> queryBusRoutes(){
return Observable.just(new BusRoutesResult());
}
default void writeOffCount(Context context , Long taskId, Long siteId, OchCommonServiceCallback<WriteOffCountResponse> callback){}
default void queryCarExecutableTaskList(Context context , OchCommonServiceCallback<CarExecutableTaskResponse> callback){}
default void reportCabinEvent(Context context , ShuttleEventRequest data , OchCommonServiceCallback<BaseData> callback){}
}

View File

@@ -0,0 +1,50 @@
package com.mogo.och.weaknet.repository.net.bean.request;
public
/**
* @author congtaowang
* @since 2021/3/22
*
* 根据车机行驶线路站点信息
*/
class PassengerWriteOffRequest {
private String sn;
private String orderNo;
private String uid;
public PassengerWriteOffRequest(String orderNo, String uid) {
this.orderNo = orderNo;
this.uid = uid;
}
public PassengerWriteOffRequest(String sn, String orderNo, String uid) {
this.sn = sn;
this.orderNo = orderNo;
this.uid = uid;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
}

View File

@@ -0,0 +1,13 @@
package com.mogo.och.weaknet.repository.net.bean.response
import com.mogo.eagle.core.data.BaseData
data class PassengerWriteOffResponse(val data: Result?) : BaseData(){
data class Result(
val phone: String?,
val ticketSize: Int?,
val ticketName: String?,
val remainingTimes: Long?
)
}

View File

@@ -1,31 +0,0 @@
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,31 +1,26 @@
package com.mogo.och.weaknet.repository.net.normal.dali.bus
package com.mogo.och.weaknet.repository.net.project.dali.bus
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
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.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.NetInterface
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
*/
class DaliBusServiceManager: NormalNetInterface {
object DaliBusServiceManager: NetInterface {
private val mService: IDaliBusApiService =
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.normal.dali.bus
package com.mogo.och.weaknet.repository.net.project.dali.bus
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
@@ -9,8 +9,10 @@ import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineReque
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.request.PassengerWriteOffRequest
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
import io.reactivex.Observable
import retrofit2.http.Body
import retrofit2.http.GET
@@ -66,19 +68,6 @@ interface IDaliBusApiService {
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")
@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
@@ -152,5 +141,12 @@ interface IDaliBusApiService {
@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>
/**
* 核销接口
*/
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/och-vehicle/api/scanner/device/writeOff")
fun daliwriteOffTicket(@Header ("appId") appId:String, @Header("ticket") ticket:String, @Body request: PassengerWriteOffRequest):Observable<PassengerWriteOffResponse>
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.weaknet.dali.shuttle
package com.mogo.och.weaknet.repository.net.project.dali.shuttle
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
@@ -15,14 +15,14 @@ import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
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 com.mogo.och.weaknet.repository.net.NetInterface
import io.reactivex.Observable
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object DaliShuttleServiceManager: WeakNetInterface {
object DaliShuttleServiceManager: NetInterface {
private val mService: IDaliShuttleApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
IDaliShuttleApiService::class.java

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.weaknet.dali.shuttle;
package com.mogo.och.weaknet.repository.net.project.dali.shuttle;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;
@@ -6,6 +6,8 @@ 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 com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest;
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse;
import io.reactivex.Observable;
import retrofit2.http.Body;
@@ -41,6 +43,13 @@ public interface IDaliShuttleApiService {
@GET("och-shuttle-cabin/api/business/v1/task/writeOffCount")
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"})
@POST("/och-vehicle/api/scanner/device/writeOff")
Observable<PassengerWriteOffResponse> daliwriteOffTicket(@Header ("appId") String appId, @Header("ticket") String ticket, @Body PassengerWriteOffRequest request);
/**
* 同步 线路站点任务自驾轨迹信息
*/

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.normal.mogo.bus
package com.mogo.och.weaknet.repository.net.project.mogo.bus
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest

View File

@@ -1,29 +1,26 @@
package com.mogo.och.weaknet.repository.net.normal.mogo.bus
package com.mogo.och.weaknet.repository.net.project.mogo.bus
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
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.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.NetInterface
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
*/
class MogoBusServiceManager: NormalNetInterface {
class MogoBusServiceManager: NetInterface {
private val mService: IMogoBusApiService =
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.normal.mogo.shuttle;
package com.mogo.och.weaknet.repository.net.project.mogo.shuttle;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;

View File

@@ -1,29 +1,26 @@
package com.mogo.och.weaknet.repository.net.normal.mogo.shuttle
package com.mogo.och.weaknet.repository.net.project.mogo.shuttle
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
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.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.NetInterface
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
*/
class MogoShuttleServiceManager: NormalNetInterface {
class MogoShuttleServiceManager: NetInterface {
private val mService: IMogoShuttleApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
IMogoShuttleApiService::class.java

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.weaknet.saas.bus;
package com.mogo.och.weaknet.repository.net.project.saas.bus;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;
@@ -6,7 +6,9 @@ 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 com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest;
import com.mogo.och.weaknet.repository.net.bean.request.WriteOffCountReqBean;
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse;
import io.reactivex.Observable;
import retrofit2.http.Body;
@@ -42,6 +44,13 @@ public interface ISaasBusApiService {
@POST("/och-vehicle/api/car/v2/task/site/writeOffCount")
Observable<WriteOffCountResponse> writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Body WriteOffCountReqBean writeOffCountReqBean);
/**
* 同步核销接口
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-vehicle/api/car/v2/device/writeOff")
Observable<PassengerWriteOffResponse> saaswriteOffTicket(@Header ("appId") String appId, @Header("ticket") String ticket, @Body PassengerWriteOffRequest request);
/**
* 同步 线路站点任务自驾轨迹信息
*/

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.weaknet.saas.bus
package com.mogo.och.weaknet.repository.net.project.saas.bus
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
@@ -12,19 +12,18 @@ 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.bean.request.WriteOffCountReqBean
import com.mogo.och.weaknet.repository.net.weaknet.WeakNetInterface
import com.mogo.och.weaknet.repository.net.NetInterface
import io.reactivex.Observable
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object SaasBusServiceManager: WeakNetInterface {
object SaasBusServiceManager: NetInterface {
private val mService: ISaasBusApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
ISaasBusApiService::class.java

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.weaknet.saas.shuttle;
package com.mogo.och.weaknet.repository.net.project.saas.shuttle;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;
@@ -6,7 +6,9 @@ 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 com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest;
import com.mogo.och.weaknet.repository.net.bean.request.WriteOffCountReqBean;
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse;
import io.reactivex.Observable;
import retrofit2.http.Body;
@@ -42,6 +44,13 @@ public interface ISaasShuttleApiService {
@POST("/och-vehicle/api/car/v2/task/site/writeOffCount")
Observable<WriteOffCountResponse> writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Body WriteOffCountReqBean writeOffCountReqBean);
/**
* 同步核销接口
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-vehicle/api/car/v2/device/writeOff")
Observable<PassengerWriteOffResponse> saaswriteOffTicket(@Header ("appId") String appId, @Header("ticket") String ticket, @Body PassengerWriteOffRequest request);
/**
* 同步 线路站点任务自驾轨迹信息
*/

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net.weaknet.saas.shuttle
package com.mogo.och.weaknet.repository.net.project.saas.shuttle
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
@@ -17,14 +17,14 @@ 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.bean.request.WriteOffCountReqBean
import com.mogo.och.weaknet.repository.net.weaknet.WeakNetInterface
import com.mogo.och.weaknet.repository.net.NetInterface
import io.reactivex.Observable
/**
* @author: wangmingjun
* @date: 2021/10/20
*/
object SaasShuttleServiceManager: WeakNetInterface {
object SaasShuttleServiceManager: NetInterface {
private val mService: ISaasShuttleApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
ISaasShuttleApiService::class.java

View File

@@ -1,35 +0,0 @@
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 ,
Long taskId,
Long siteId,
OchCommonServiceCallback<WriteOffCountResponse> callback
);
void queryCarExecutableTaskList(
Context context ,
OchCommonServiceCallback<CarExecutableTaskResponse> callback
);
void reportCabinEvent(
Context context ,
ShuttleEventRequest data ,
OchCommonServiceCallback<BaseData> callback
);
}

View File

@@ -0,0 +1,15 @@
package com.mogo.och.weaknet.repository.writeoff
import android.content.Context
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
interface IWriteOffRepository {
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback<WriteOffCountResponse>?)
fun writeOffEvent()
fun release()
}

View File

@@ -0,0 +1,66 @@
package com.mogo.och.weaknet.repository.writeoff.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.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.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.net.exception.NetException
import com.mogo.och.weaknet.repository.net.NetInterface
import com.mogo.och.weaknet.repository.net.project.dali.shuttle.DaliShuttleServiceManager
import com.mogo.och.weaknet.repository.net.project.saas.bus.SaasBusServiceManager
import com.mogo.och.weaknet.repository.net.project.saas.shuttle.SaasShuttleServiceManager
import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository
class WriteOffCacheRepository : IWriteOffRepository {
private val TAG = "ShuttleSaasRepository"
private val context = AbsMogoApplication.getApp()
private var weakNetInterface: NetInterface?=null
get() {
if(field==null){
when (ProjectUtils.getProjectType()) {
Project.SAAS -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
field = SaasShuttleServiceManager
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
field = SaasBusServiceManager
}
}
Project.DALI -> {
throw NetException("缓存weakNetInterface 初始化环境错误 Dali")
}
Project.MOGO -> {
throw NetException("缓存weakNetInterface 初始化环境错误 MOGO")
}
else->{
throw NetException("缓存weakNetInterface 初始化环境错误 未知")
}
}
}
return field
}
override fun queryWriteoffCount(
context: Context,
taskId: Long,
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
weakNetInterface?.writeOffCount(context,taskId,siteId,callback)
}
override fun writeOffEvent() {
}
override fun release() {
weakNetInterface = null
CallerLogger.d(TAG,"重置 weakNetInterface")
}
}

View File

@@ -0,0 +1,72 @@
package com.mogo.och.weaknet.repository.writeoff.impl
import android.content.Context
import com.mogo.commons.env.Project
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.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.net.NetInterface
import com.mogo.och.weaknet.repository.net.exception.NetException
import com.mogo.och.weaknet.repository.net.project.dali.bus.DaliBusServiceManager
import com.mogo.och.weaknet.repository.net.project.dali.shuttle.DaliShuttleServiceManager
import com.mogo.och.weaknet.repository.net.project.mogo.bus.MogoBusServiceManager
import com.mogo.och.weaknet.repository.net.project.mogo.shuttle.MogoShuttleServiceManager
import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository
class WriteOffNormallRepository: IWriteOffRepository {
private val TAG = "WriteOffNormallRepository"
private var normalNetInterface: NetInterface?=null
get() {
if(field==null){
when (ProjectUtils.getProjectType()) {
Project.SAAS -> {
throw NetException("writeoff 核销 初始化环境错误 SAAS")
}
Project.DALI -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
field = DaliShuttleServiceManager
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
field = DaliBusServiceManager
}
}
Project.MOGO -> {
throw NetException("writeoff 核销 初始化环境错误 MOGO")
}
else->{
throw NetException("writeoff 核销 初始化环境错误 未知")
}
}
}
return field
}
init {
}
override fun queryWriteoffCount(
context: Context,
taskId: Long,
siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
) {
normalNetInterface?.writeOffCount(context,taskId,siteId,callback)
}
override fun writeOffEvent() {
}
override fun release() {
normalNetInterface=null
CallerLogger.d(TAG,"重置 normalNetInterface")
}
}

View File

@@ -12,6 +12,7 @@ import com.mogo.och.shuttle.weaknet.passenger.bean.request.PassengerWriteOffRequ
import com.mogo.och.shuttle.weaknet.passenger.bean.response.PassengerWriteOffResponse
import com.mogo.och.common.module.manager.scnner.ScannerManager
import com.mogo.och.common.module.manager.scnner.StateChangeListener
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
import com.mogo.och.shuttle.weaknet.passenger.network.PassengerServiceManager
object TicketModel : StateChangeListener {
@@ -27,9 +28,17 @@ object TicketModel : StateChangeListener {
}
override fun parseData(params: MutableMap<String, Any>, payload: String?) {
val expiryTime = params["expiryTime"]
val bookingTime = params["bookingTime"]
val businessType = params["businessType"]
val lineId = params["lineId"]
val remainingTimes = params["remainingTimes"]
val orderNo = params["orderNo"]
val uid = params["uid"]
val phone = params["phone"]
val ticketSize = params["ticketSize"]
val ticketName = params["ticketName"]
if(orderNo is String && uid is String){
var phoneNum = ""
if(phone is String){
@@ -37,7 +46,11 @@ object TicketModel : StateChangeListener {
phoneNum = phone
}
}
writeOffTicket(orderNo,uid,phoneNum)
val writeOffDetail = WriteOffDetialMsg(expiryTime as Long,bookingTime as Long,
businessType as Int,lineId as Long,remainingTimes as Int,
orderNo,uid,phoneNum,ticketSize as String,ticketName as String)
CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(writeOffDetail))
LanSocketManager.sendMsgToServer(writeOffDetail)
}else{
// 通知司机屏二维码错误
sendMessage2Driver("参数错误:${payload}","")

View File

@@ -19,19 +19,7 @@ import retrofit2.http.Query;
*/
public interface ServiceApi {
/**
* 核销接口
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-vehicle/api/scanner/device/writeOff")
Observable<PassengerWriteOffResponse> daliwriteOffTicket(@Header ("appId") String appId, @Header("ticket") String ticket, @Body PassengerWriteOffRequest request);
/**
* 核销接口
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-vehicle/api/car/v2/device/writeOff")
Observable<PassengerWriteOffResponse> saaswriteOffTicket(@Header ("appId") String appId, @Header("ticket") String ticket, @Body PassengerWriteOffRequest request);
/**
* 查询车辆对应站点的所有视频介绍视频