[fea]
[当天弱网不用等待网络信息直接进入主页面]
This commit is contained in:
yangyakun
2024-09-29 15:48:30 +08:00
parent 09cb96d14c
commit 43425406ef
3 changed files with 73 additions and 34 deletions

View File

@@ -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<DriverStatusQueryRespBean> {
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<DriverStatusQueryRespBean> {
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()

View File

@@ -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<TaxiLoginRespBean>?
) {
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
}

View File

@@ -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)
}
}