From 8935db43db1d43a9206b7d0d940322fcd068fa35 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 24 Oct 2024 15:21:14 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.2]=20[fea]=20[=E9=80=80=E5=87=BA=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=8E=AF=E5=A2=83=E8=BF=98=E5=8E=9F]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/autopilot/AutopilotStatusView.kt | 2 +- .../mogo/och/weaknet/ShuttleDriverProvider.kt | 2 + .../com/mogo/och/weaknet/model/LineModel.kt | 4 ++ .../com/mogo/och/weaknet/model/OrderModel.kt | 1 - .../och/weaknet/repository/IRepository.kt | 2 + .../weaknet/repository/RepositoryManager.kt | 56 +++++++++++---- .../weaknet/repository/db/IDbRepository.kt | 8 +++ .../och/weaknet/repository/db/MyDataBase.kt | 49 ++++++++----- .../repository/db/repository/ContraiDb.kt | 14 +++- .../repository/db/repository/EventDb.kt | 14 +++- .../repository/db/repository/LineDb.kt | 15 +++- .../repository/db/repository/SiteDb.kt | 16 ++++- .../repository/db/repository/TaskDb.kt | 16 ++++- .../repository/db/repository/TaskSiteDb.kt | 15 +++- .../repository/impl/NormalRepository.kt | 70 +++++++++++-------- .../repository/impl/WeaknetRepository.kt | 61 +++++++++------- .../weaknet/saas/bus/ISaasBusApiService.java | 2 +- .../weaknet/saas/bus/SaasBusServiceManager.kt | 4 +- .../weaknet/passenger/model/LineModel.kt} | 4 +- .../weaknet/passenger/model/PM2ADASModel.kt | 0 .../presenter/PM2DrivingPresenter.kt | 14 ++-- 21 files changed, 250 insertions(+), 119 deletions(-) create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/IDbRepository.kt rename OCH/shuttle/passenger_weaknet/src/main/java/{m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2DrivingModel.kt => com/mogo/och/shuttle/weaknet/passenger/model/LineModel.kt} (99%) rename OCH/shuttle/passenger_weaknet/src/main/java/{m2 => }/com/mogo/och/shuttle/weaknet/passenger/model/PM2ADASModel.kt (100%) diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusView.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusView.kt index 185fe61ba5..1e43b9efd6 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusView.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusView.kt @@ -124,7 +124,7 @@ class AutopilotStatusView : RelativeLayout,AutopilotStatusViewModel.IAutopilotSt bus_autopolot_btn_tv.setTextColor(ContextCompat.getColor(context,R.color.charter_autopilot_text_color_normal)) bus_autopolot_btn_tv.text = resources.getString(R.string.charter_loading_autopilot_pingxing_tv) bus_autopilot_btn_iv.setImageResource(R.drawable.charter_ic_autopilot) - isClickable = false + isClickable = true background = ResourceUtils.getDrawable(R.drawable.common_autopilot_pxjs) } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt index 5127f2006a..aa3b019492 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt @@ -17,6 +17,7 @@ import com.mogo.och.weaknet.repository.db.repository.TaskDb import com.mogo.och.weaknet.repository.db.repository.TaskSiteDb import com.mogo.och.weaknet.ui.fragment.ShuttleFragment import com.mogo.och.weaknet.model.LineModel +import com.mogo.och.weaknet.repository.RepositoryManager import com.mogo.och.weaknet.ui.bizswitch.SwitchBizView import com.mogo.och.weaknet.ui.qr.QrOpenView import com.mogo.och.weaknet.util.BusAnalyticsManager @@ -55,6 +56,7 @@ class ShuttleDriverProvider : CommonServiceImpl() { busFragment = null OchAutopilotAnalytics.ochEventKey = null LineModel.release() + RepositoryManager.closeDb() } override fun createOchBusinessView(context: Context?): View? { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt index cba9a7d5b5..8911d05596 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt @@ -111,10 +111,12 @@ object LineModel { return } isRequesting.set(true) + CallerLogger.d(TAG,"开始同步数据") RepositoryManager.queryCarExecutableTaskList( object : OchCommonServiceCallback { override fun onSuccess(data: CarExecutableTaskResponse) { isRequesting.set(false) + CallerLogger.d(TAG,"同步数据成功") BizLoopManager.postDelayed(loopQueryInfo, 60_000) // 第一次过滤 请求返回值的md5 val currentRequest = DigestUtils.md5Hex(data.data.toString()) @@ -143,6 +145,7 @@ object LineModel { override fun onError() { isRequesting.set(false) + CallerLogger.d(TAG,"同步数据失败 onError") BizLoopManager.postDelayed(loopQueryInfo, 60_000) if (!isBackground) { if (!NetworkUtils.isConnected(mContext)) { @@ -155,6 +158,7 @@ object LineModel { override fun onFail(code: Int, failMsg: String) { isRequesting.set(false) + CallerLogger.d(TAG,"同步数据失败 onFail") BizLoopManager.postDelayed(loopQueryInfo, 60_000) if (!isBackground) { if (!NetworkUtils.isConnected(mContext)) { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt index 62635b1df4..adb0cb6a9b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt @@ -447,7 +447,6 @@ object OrderModel { } MapMakerManager.removeAllMapMarkerByOwner(TAG) BusTrajectoryManager.getInstance().stopTrajReqLoop(); - RepositoryManager.closeDb() LoginStatusManager.loginOut() } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/IRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/IRepository.kt index 9f7a59f356..63c45f2f9d 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/IRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/IRepository.kt @@ -32,4 +32,6 @@ interface IRepository { fun reportCabinEvent(context: Context?, data: ShuttleEventRequest?, callback: OchCommonServiceCallback?) + fun release() + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/RepositoryManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/RepositoryManager.kt index 185988340f..d4cea6a280 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/RepositoryManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/RepositoryManager.kt @@ -21,7 +21,36 @@ import io.reactivex.Observable object RepositoryManager { - private lateinit var repository: IRepository + private var repository: IRepository?=null + get() { + if(field==null){ + when (ProjectUtils.getProjectType()) { + Project.SAAS -> { + if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + field = WeaknetRepository() + }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + field = WeaknetRepository() + } + } + Project.DALI -> { + if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + field = WeaknetRepository() + }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + field = NormalRepository() + } + } + Project.MOGO -> { + if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + field = NormalRepository() + }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + field = NormalRepository() + } + } + else->{} + } + } + return field + } init { @@ -53,36 +82,36 @@ object RepositoryManager { } fun loadCurrentTaskInfo():Observable?{ - return repository.loadCurrentTaskInfo() + return repository?.loadCurrentTaskInfo() } fun queryCanUseLine() : Observable?>? { - return repository.queryCanUseLine() + return repository?.queryCanUseLine() } fun queryCanUserTask(lineId: Long): Observable?>? { - return repository.queryCanUserTask(lineId) + return repository?.queryCanUserTask(lineId) } fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable? { - return repository.startTask(taskId,lineId,taskTime,lineName) + return repository?.startTask(taskId,lineId,taskTime,lineName) } fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long ): Observable?{ - return repository.leaveStation(seq,siteId,taskId,lineId,taskStartTime) + return repository?.leaveStation(seq,siteId,taskId,lineId,taskStartTime) } fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable?{ - return repository.arriveStation(seq,siteId,taskId) + return repository?.arriveStation(seq,siteId,taskId) } fun endTask(taskId: Long): Observable?{ - return repository.endTask(taskId) + return repository?.endTask(taskId) } fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback?){ - repository.queryWriteoffCount(context,taskId,siteId,callback) + repository?.queryWriteoffCount(context,taskId,siteId,callback) } @@ -106,7 +135,7 @@ object RepositoryManager { ochCommonServiceCallback: OchCommonServiceCallback ) { if (repository is WeaknetRepository) { - repository.queryCarExecutableTaskList(ochCommonServiceCallback) + repository?.queryCarExecutableTaskList(ochCommonServiceCallback) } } @@ -116,13 +145,16 @@ object RepositoryManager { callback: OchCommonServiceCallback? ){ if (repository is WeaknetRepository) { - repository.reportCabinEvent(context,data,callback) + repository?.reportCabinEvent(context,data,callback) } } fun closeDb() { if (supportDb()) { - MyDataBase.instance.close() + MyDataBase.instance?.close() + MyDataBase.instance = null + repository?.release() + repository = null } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/IDbRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/IDbRepository.kt new file mode 100644 index 0000000000..509396e980 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/IDbRepository.kt @@ -0,0 +1,8 @@ +package com.mogo.och.weaknet.repository.db + +interface IDbRepository { + fun register(){ + MyDataBase.instance?.register(this) + } + fun release() +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt index fcbaf5796a..5f6cfc9cca 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt @@ -33,20 +33,24 @@ import java.io.File @Database(entities = [ContrailDataBean::class, LineDataBean::class, SiteDataBean::class, TaskDataBean::class, TaskSiteDataBean::class, EventDataBean::class], version = 2) abstract class MyDataBase : RoomDatabase() { - - - private object SingleTon { - val instance: MyDataBase = Room.databaseBuilder( - AbsMogoApplication.getApp()!!.applicationContext, MyDataBase::class.java, ROOT_PATH+getDBName() - ) - .addMigrations(Migration1_2(1,2)) - .build() - } - override fun getOpenHelper(): SupportSQLiteOpenHelper { return super.getOpenHelper() } + private val dbRepositorys = mutableListOf() + + override fun close() { + super.close() + dbRepositorys.forEach { + it.release() + } + dbRepositorys.clear() + } + + fun register(iDbRepository: IDbRepository) { + dbRepositorys.add(iDbRepository) + } + abstract val contrailDataDao: ContrailDataDao? abstract val eventDataDao: EventDataDao? abstract val lineDataDao: LineDataDao? @@ -55,8 +59,8 @@ abstract class MyDataBase : RoomDatabase() { abstract val taskSiteDataDao: TaskSiteDataDao? companion object { - fun getDBName():String{ - return when (ProjectUtils.getProjectType()) { + fun getDBName():MyDataBase{ + val roomName = when (ProjectUtils.getProjectType()) { Project.SAAS -> { if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { "shuttle_db" @@ -77,13 +81,22 @@ abstract class MyDataBase : RoomDatabase() { FunctionBuildConfig.appIdentityMode } } - } - val ROOT_PATH = - Environment.getExternalStorageDirectory().absolutePath + File.separator + "Mogo" + File.separator + "APP_cache" + File.separator //程序外部存储跟目录 - val instance: MyDataBase - //结合单例模式完成数据库实例创建 - get() = SingleTon.instance + return Room.databaseBuilder( + AbsMogoApplication.getApp()!!.applicationContext, MyDataBase::class.java, ROOT_PATH+roomName + ) + .addMigrations(Migration1_2(1,2)) + .build() + } + val ROOT_PATH = Environment.getExternalStorageDirectory().absolutePath + File.separator + "Mogo" + File.separator + "APP_cache" + File.separator //程序外部存储跟目录 + + var instance: MyDataBase? = getDBName() + get() { + if(field==null){ + field = getDBName() + } + return field + } } class Migration1_2(val startVersion:Int,val endVersion:Int): Migration(startVersion,endVersion) { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt index fcedf75ab9..16a9642ec6 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt @@ -2,16 +2,24 @@ package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.network.utils.digest.DigestUtils import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao -object ContraiDb { +object ContraiDb : IDbRepository { private var contrailDao: ContrailDataDao?=null + get() { + if(field==null){ + field = MyDataBase.instance?.contrailDataDao + register() + } + return field + } - init { - contrailDao = MyDataBase.instance.contrailDataDao + override fun release(){ + contrailDao = null } fun addOrUpdate(contrailDatalist:List){ diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt index e5c8b33331..a689f5d744 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt @@ -4,20 +4,28 @@ import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.EventDataBean import com.mogo.och.weaknet.repository.db.dao.EventDataDao import io.reactivex.Observable -object EventDb { +object EventDb: IDbRepository { private var eventDataDao: EventDataDao? = null + get() { + if(field==null){ + field = MyDataBase.instance?.eventDataDao + register() + } + return field + } var eventCallback: EventCallback? = null - init { - eventDataDao = MyDataBase.instance.eventDataDao + override fun release(){ + eventDataDao = null } fun saveEventTaskStart(taskId: Long, lineId: Long, taskStartTime: Long, name: String) { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt index 0476de577e..bfe087e8dd 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt @@ -2,19 +2,28 @@ package com.mogo.och.weaknet.repository.db.repository import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.dao.LineDataDao import io.reactivex.Observable -object LineDb { +object LineDb: IDbRepository { private var lineDao: LineDataDao?=null + get() { + if(field==null){ + field = MyDataBase.instance?.lineDataDao + register() + } + return field + } - init { - lineDao = MyDataBase.instance.lineDataDao + override fun release() { + lineDao = null } + fun cleanWeltData(){ lineDao?.deleteWeltData() } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt index 9a335dad7e..7c5367ba20 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt @@ -5,16 +5,24 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.TAG import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.SiteDataBean import com.mogo.och.weaknet.repository.db.dao.SiteDataDao -object SiteDb { +object SiteDb: IDbRepository { private var siteDataDao: SiteDataDao? = null + get() { + if(field==null){ + field = MyDataBase.instance?.siteDataDao + register() + } + return field + } - init { - siteDataDao = MyDataBase.instance.siteDataDao + override fun release() { + siteDataDao = null } fun addOrUpdate(siteDateList: List) { @@ -64,4 +72,6 @@ object SiteDb { return null } + + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt index 21858f2232..c3e4d98a37 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt @@ -6,6 +6,7 @@ import com.mogo.eagle.core.utilcode.util.TAG import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.dao.TaskDataDao @@ -13,12 +14,19 @@ import com.mogo.och.weaknet.repository.db.exception.DbException import com.mogo.och.weaknet.repository.exception.DataException import io.reactivex.Observable -object TaskDb { +object TaskDb : IDbRepository { private var taskDataDao: TaskDataDao? = null + get() { + if(field==null){ + field = MyDataBase.instance?.taskDataDao + register() + } + return field + } - init { - taskDataDao = MyDataBase.instance.taskDataDao + override fun release() { + taskDataDao = null } fun addOrUpdate(vararg lineDataBean: TaskDataBean){ @@ -167,4 +175,6 @@ object TaskDb { fun startSuccess() fun startFail(msg:String) } + + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt index 4c1fb09a55..357624f380 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt @@ -4,19 +4,28 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.TAG import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao import com.mogo.och.weaknet.repository.db.exception.DbException -object TaskSiteDb { +object TaskSiteDb: IDbRepository { private var taskSiteDataDao: TaskSiteDataDao? = null + get() { + if(field==null){ + field = MyDataBase.instance?.taskSiteDataDao + register() + } + return field + } - init { - taskSiteDataDao = MyDataBase.instance.taskSiteDataDao + override fun release() { + taskSiteDataDao = null } + fun addOrUpdate(vararg lineDataBean: TaskSiteDataBean){ taskSiteDataDao?.insert(*lineDataBean) } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/impl/NormalRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/impl/NormalRepository.kt index c37a62de4d..3689912498 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/impl/NormalRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/impl/NormalRepository.kt @@ -30,35 +30,41 @@ import io.reactivex.Observable class NormalRepository: IRepository { - private lateinit var normalNetInterface: NormalNetInterface + private var normalNetInterface: NormalNetInterface?=null + get() { + if(field==null){ + 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)) { + field = DaliBusServiceManager() + } + } + Project.MOGO -> { + field = MogoBusServiceManager() + } + else->{ + field = MogoShuttleServiceManager() + } + } + } + return field + } 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? { - return normalNetInterface.queryBusRoutes() + return normalNetInterface?.queryBusRoutes() ?.flatMap { busRoutesResult -> if (!busRoutesResult.sites.isNullOrEmpty() && busRoutesResult.sites.size > 1) { OchChainLogManager.writeChainLogDb( @@ -126,11 +132,11 @@ class NormalRepository: IRepository { } override fun queryCanUseLine(): Observable?>? { - return normalNetInterface.queryBusLines() + return normalNetInterface?.queryBusLines() } override fun queryCanUserTask(lineId: Long): Observable?>? { - return normalNetInterface.queryBusTaskByLineId(lineId) + return normalNetInterface?.queryBusTaskByLineId(lineId) } override fun startTask( @@ -139,7 +145,7 @@ class NormalRepository: IRepository { taskTime: Long, lineName: String ): Observable? { - return normalNetInterface.switchLine(taskId) + return normalNetInterface?.switchLine(taskId) } override fun leaveStation( @@ -149,11 +155,11 @@ class NormalRepository: IRepository { lineId: Long, taskStartTime: Long ): Observable? { - return normalNetInterface.leaveStation(seq, siteId, taskId, System.currentTimeMillis()) + return normalNetInterface?.leaveStation(seq, siteId, taskId, System.currentTimeMillis()) } override fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable? { - return normalNetInterface.arriveSiteStation( + return normalNetInterface?.arriveSiteStation( seq, siteId, taskId, @@ -162,7 +168,7 @@ class NormalRepository: IRepository { } override fun endTask(taskId: Long): Observable? { - return normalNetInterface.endTask(taskId) + return normalNetInterface?.endTask(taskId) } override fun queryWriteoffCount( @@ -186,5 +192,9 @@ class NormalRepository: IRepository { } + override fun release() { + normalNetInterface=null + } + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/impl/WeaknetRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/impl/WeaknetRepository.kt index 3b22e8bbd8..d18845d94e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/impl/WeaknetRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/impl/WeaknetRepository.kt @@ -31,38 +31,41 @@ 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 io.reactivex.Observable 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 + private var weakNetInterface: WeakNetInterface?=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 -> { + if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + field = DaliShuttleServiceManager + }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + throw NetException("缓存weakNetInterface 初始化环境错误 isBus") + } + } + Project.MOGO -> { + throw NetException("缓存weakNetInterface 初始化环境错误 MOGO") + } + else->{ + throw NetException("缓存weakNetInterface 初始化环境错误 未知") + } } } - 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 初始化环境错误 未知") - } + return field } - } override fun loadCurrentTaskInfo(): Observable? { @@ -147,7 +150,7 @@ class WeaknetRepository : IRepository { } private fun loadServerRuningTask(): Observable? { - return weakNetInterface.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) { @@ -317,13 +320,13 @@ class WeaknetRepository : IRepository { siteId: Long, callback: OchCommonServiceCallback? ) { - weakNetInterface.writeOffCount(context,taskId.toString(),siteId.toString(),callback) + weakNetInterface?.writeOffCount(context,taskId.toString(),siteId.toString(),callback) } override fun queryCarExecutableTaskList( ochCommonServiceCallback: OchCommonServiceCallback ) { - weakNetInterface.queryCarExecutableTaskList(context,ochCommonServiceCallback) + weakNetInterface?.queryCarExecutableTaskList(context,ochCommonServiceCallback) } override fun reportCabinEvent( @@ -331,6 +334,10 @@ class WeaknetRepository : IRepository { data: ShuttleEventRequest?, callback: OchCommonServiceCallback? ) { - weakNetInterface.reportCabinEvent(context,data,callback) + weakNetInterface?.reportCabinEvent(context,data,callback) + } + + override fun release() { + weakNetInterface = null } } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/weaknet/saas/bus/ISaasBusApiService.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/weaknet/saas/bus/ISaasBusApiService.java index 38c6e74828..2dc309f6f4 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/weaknet/saas/bus/ISaasBusApiService.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/weaknet/saas/bus/ISaasBusApiService.java @@ -32,7 +32,7 @@ public interface ISaasBusApiService { */ @Headers( {"Content-Type:application/json;charset=UTF-8"} ) @GET( "/och-bus-cabin/api/business/v1/driver/bus/lineDataWithDriver/query" ) - Observable queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request); + Observable queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn); /** * 查询当前站点核销的人数 diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/weaknet/saas/bus/SaasBusServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/weaknet/saas/bus/SaasBusServiceManager.kt index 26ad705015..aba08bcb3a 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/weaknet/saas/bus/SaasBusServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/weaknet/saas/bus/SaasBusServiceManager.kt @@ -24,7 +24,7 @@ import io.reactivex.Observable */ object SaasBusServiceManager: WeakNetInterface { - private val mService: ISaasBusApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create( + private val mService: ISaasBusApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( ISaasBusApiService::class.java ) @@ -39,7 +39,7 @@ object SaasBusServiceManager: WeakNetInterface { return mService.queryBusRoutes( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, - BusQueryLineStationsRequest() + SharedPrefsMgr.getInstance().getSn() ) .transformIoTry() .flatMap(OchCommonNet("queryBusRoutes",false)) .flatMap { diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2DrivingModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/LineModel.kt similarity index 99% rename from OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2DrivingModel.kt rename to OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/LineModel.kt index 4183d6765f..3db1519d2f 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2DrivingModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/LineModel.kt @@ -38,12 +38,12 @@ import kotlin.math.abs * @date: 2023/1/31 */ @SuppressLint("StaticFieldLeak") -object PM2DrivingModel{ +object LineModel{ private var mContext: Context? = null private var routesResult: BusRoutesResult? = null - private val TAG: String = PM2DrivingModel::class.java.simpleName + private val TAG: String = LineModel::class.java.simpleName var mStations = mutableListOf() private var mNextStationIndex = 0 // A-B要到达站的index diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2ADASModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/PM2ADASModel.kt similarity index 100% rename from OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2ADASModel.kt rename to OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/PM2ADASModel.kt diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt b/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt index 6cda5cfc0e..89e8b10363 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt @@ -7,7 +7,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.shuttle.weaknet.passenger.callback.AutoPilotStatusCallback import com.mogo.och.shuttle.weaknet.passenger.callback.DrivingInfoCallback import com.mogo.och.shuttle.weaknet.passenger.model.PM2ADASModel -import com.mogo.och.shuttle.weaknet.passenger.model.PM2DrivingModel +import com.mogo.och.shuttle.weaknet.passenger.model.LineModel import com.mogo.och.shuttle.weaknet.passenger.ui.PM2DrivingInfoFragment import com.mogo.och.data.bean.BusStationBean @@ -15,7 +15,7 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : Presenter(view), DrivingInfoCallback, AutoPilotStatusCallback { init { - PM2DrivingModel.init(context) + LineModel.init(context) PM2ADASModel.INSTANCE.init(context) initListener() } @@ -23,17 +23,17 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) destroyListener() - PM2DrivingModel.releaseListener() + LineModel.releaseListener() } private fun initListener(){ - PM2DrivingModel.setDrivingInfoCallback(this) - PM2DrivingModel.setAutoStatusCallback(this) + LineModel.setDrivingInfoCallback(this) + LineModel.setAutoStatusCallback(this) } private fun destroyListener(){ - PM2DrivingModel.setDrivingInfoCallback(null) - PM2DrivingModel.setAutoStatusCallback(null) + LineModel.setDrivingInfoCallback(null) + LineModel.setAutoStatusCallback(null) } override fun updateSpeed(speed: Int) {