From 43425406ef2979d8a490cd0a6fc0389e13bcf4a5 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Sun, 29 Sep 2024 15:48:30 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.0]=20[fea]=20[=E5=BD=93=E5=A4=A9=E5=BC=B1?= =?UTF-8?q?=E7=BD=91=E4=B8=8D=E7=94=A8=E7=AD=89=E5=BE=85=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=9B=B4=E6=8E=A5=E8=BF=9B=E5=85=A5=E4=B8=BB?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/biz/login/model/LoginModel.kt | 77 +++++++++++-------- .../biz/login/net/OchCommonServiceManager.kt | 9 ++- .../module/manager/cache/OchSPManager.kt | 21 +++++ 3 files changed, 73 insertions(+), 34 deletions(-) create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt index b14336b4b8..d121f890eb 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt @@ -9,12 +9,10 @@ import com.mogo.commons.module.intent.IntentManager import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager -import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02 -import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.och.biz.R @@ -24,12 +22,13 @@ import com.mogo.och.biz.login.bean.TaxiLoginRespBean import com.mogo.och.biz.login.bean.TaxiLogoutReqBean import com.mogo.och.biz.login.callback.ITaxiLoginCallback import com.mogo.och.biz.login.net.OchCommonServiceManager -import com.mogo.och.biz.login.net.OchCommonServiceManager.queryDriverServiceStatus import com.mogo.och.common.module.biz.login.BusinessEnum +import com.mogo.och.common.module.biz.login.LoginInfo import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.login.LoginStatusEnum.Companion.valueOf import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager +import com.mogo.och.common.module.manager.cache.OchSPManager import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus import com.mogo.och.common.module.network.OchCommonServiceCallback @@ -55,6 +54,8 @@ object LoginModel { var iTaxiLoginCallback: ITaxiLoginCallback? = null private var subscribe: Disposable? = null + private val loginInfoKey = "LOGININFOKEY" + private val mNetWorkIntentListener = IMogoIntentListener { intentStr, _ -> d(TAG, "onIntentReceived = %s", intentStr) if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) { @@ -171,33 +172,18 @@ object LoginModel { */ fun queryCarStatus() { mContext?.let { - queryDriverServiceStatus(it, object : OchCommonServiceCallback { + val logingInfoJson = OchSPManager.getString(loginInfoKey) + val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd) + logingInfoJson?.let {logininfo-> + if(logininfo.startsWith(timeText)){ + val json = logingInfoJson.replace(timeText,"" ) + val oldLoginInfo = GsonUtils.fromJson(json, DriverStatusQueryRespBean::class.java) + go2LoginInfo(oldLoginInfo) + } + } + OchCommonServiceManager.queryDriverServiceStatus(it, object : OchCommonServiceCallback { override fun onSuccess(data: DriverStatusQueryRespBean?) { - data?.let { - LoginStatusManager.setLoginInfo(data.data) - } - if(FunctionBuildConfig.ochdebug){ - return - } - if (null != data && 0 == data.code) { - // 不用登录也可以获得支持的业务模式 - LoginStatusManager.setBusinessType(data.data.businessType) - iTaxiLoginCallback?.searchStatusSuccess() - // 后台已登录 - if(!FunctionBuildConfig.isOffLine){ - if (valueOf(data.data.driverStatus) == LoginStatusEnum.Login) { - // 业务不支持 去退出登录 - if (!LoginStatusManager.checkBusiness(data.data.businessType)) { - LoginStatusManager.loginOut() - return - } - } - LoginStatusManager.setLoginStatus(data.data.driverStatus) - } - LoginStatusManager.setOpenOrderType(data.data.servingStatus) - d(SceneConstant.M_TAXI + TAG, "登录信息:$data") - loginSuccess(data) - } + go2LoginInfo(data) } override fun onError() { @@ -226,6 +212,37 @@ object LoginModel { } } + private fun go2LoginInfo(data: DriverStatusQueryRespBean?) { + data?.let { + LoginStatusManager.setLoginInfo(data.data) + } + if (FunctionBuildConfig.ochdebug) { + return + } + if (null != data && 0 == data.code) { + // 不用登录也可以获得支持的业务模式 + LoginStatusManager.setBusinessType(data.data.businessType) + iTaxiLoginCallback?.searchStatusSuccess() + // 后台已登录 + if (!FunctionBuildConfig.isOffLine) { + if (valueOf(data.data.driverStatus) == LoginStatusEnum.Login) { + // 业务不支持 去退出登录 + if (!LoginStatusManager.checkBusiness(data.data.businessType)) { + LoginStatusManager.loginOut() + return + } + } + LoginStatusManager.setLoginStatus(data.data.driverStatus) + } + val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd) + val loginInfo4Json = GsonUtils.toJson(data) + OchSPManager.putString(loginInfoKey,timeText+loginInfo4Json) + LoginStatusManager.setOpenOrderType(data.data.servingStatus) + d(SceneConstant.M_TAXI + TAG, "登录信息:$data") + loginSuccess(data) + } + } + // 登出 fun logout() { val location4Login = TaxiLogoutReqBean.Location4Login() diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt index d687e25ca5..098622d105 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt @@ -19,6 +19,7 @@ import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.network.OchCommonSubscribeImpl import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.commons.env.ProjectUtils +import com.mogo.och.common.module.manager.cache.OchSPManager object OchCommonServiceManager { @@ -76,7 +77,7 @@ object OchCommonServiceManager { callback: OchCommonServiceCallback? ) { CallerLogger.d(TAG, "gotoLoginBycode:通过手机验证码登录:${phone}---${code}"); - val sn = SharedPrefsMgr.getInstance().sn + val sn = OchSPManager.getSn() if (ProjectUtils.isMogo()) { ochLoginServiceMogo.gotoLoginBycode( MoGoAiCloudClientConfig.getInstance().serviceAppId, @@ -107,7 +108,7 @@ object OchCommonServiceManager { MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, TaxiLogoutReqBean( - SharedPrefsMgr.getInstance().sn, + OchSPManager.getSn(), location4Login ) ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout")) @@ -116,7 +117,7 @@ object OchCommonServiceManager { MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, TaxiLogoutReqBean( - SharedPrefsMgr.getInstance().sn, + OchSPManager.getSn(), location4Login ) ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout")) @@ -137,7 +138,7 @@ object OchCommonServiceManager { CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态"); val sn = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { - SharedPrefsMgr.getInstance().sn + OchSPManager.getSn() } else{ LoginLanPassengerSocket.driverSn } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt new file mode 100644 index 0000000000..c5810c8183 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt @@ -0,0 +1,21 @@ +package com.mogo.och.common.module.manager.cache + +import com.mogo.commons.storage.SharedPrefsMgr + +object OchSPManager { + + @JvmStatic + fun getSn(): String? { + return SharedPrefsMgr.getInstance().sn + } + + fun putString(key: String, value:String ) { + SharedPrefsMgr.getInstance().putString(key,value) + + } + + fun getString(key: String,default:String=""): String? { + return SharedPrefsMgr.getInstance().getString(key,default) + } + +} \ No newline at end of file