[6.10.0]
[fea] [删除车型维度]
This commit is contained in:
@@ -1,57 +1,67 @@
|
||||
package com.mogo.och.biz.login
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HdMapBuildConfig
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.och.biz.login.bean.LoginInfo
|
||||
import com.mogo.och.biz.login.callback.ILoginViewCallback
|
||||
import com.mogo.och.biz.login.model.LoginModel
|
||||
import com.mogo.och.biz.login.ui.LoginFragment
|
||||
import com.mogo.och.biz.login.ui.LoginPassengerFragment
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.login.LoginInfo
|
||||
import com.mogo.och.common.module.biz.login.LoginService
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.RoleEnum
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.biz.login.EnumRole
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.LoginInfo2Client
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
import com.mogo.och.common.module.utils.FlavorUtils
|
||||
|
||||
/**
|
||||
* 网约车小巴业务实现入口
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
@Route(path = OchCommonConst.BIZ_LOGIN)
|
||||
class LoginProvider : LoginService {
|
||||
|
||||
private val tag = LoginProvider::class.java.simpleName
|
||||
private var loginFragment: Fragment?=null
|
||||
private var loginStatus: LoginStatusEnum = LoginStatusEnum.None
|
||||
private var businessEnum = Product.NONE
|
||||
private var openOrderStatusEnum: OpenOrderStatusEnum = OpenOrderStatusEnum.None
|
||||
private var carModel: Carmodel = Carmodel.T2
|
||||
private var loginInfo: LoginInfo? = null
|
||||
private val tag = M_OCHCOMMON +LoginProvider::class.java.simpleName
|
||||
// 登录页面
|
||||
private var loginFragment: Fragment? = null
|
||||
|
||||
// 环境监测+业务展示和跳转
|
||||
private val changeBusinessType = object : ILanMessageListener<LoginInfo2Client> {
|
||||
override fun targetLan(): Class<LoginInfo2Client> {
|
||||
return LoginInfo2Client::class.java
|
||||
}
|
||||
|
||||
override fun onLanMsgReceived(first: LoginInfo2Client?) {
|
||||
first?.let {
|
||||
if (LoginServiceManager.checkAllEnv(it.project,it.env)) {
|
||||
d(tag,"从司机屏获取账号信息:${it}")
|
||||
val driverLoginInfo = GsonUtils.fromJson(it.loginInfo, LoginInfo::class.java)
|
||||
LoginServiceManager.setLoginInfo(driverLoginInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private val loginInfoKey = "LOGININFOKEY"
|
||||
|
||||
override fun init(context: Context) {
|
||||
CallerLogger.d(tag, "LoginProvider init")
|
||||
d(tag, "登录模块 init")
|
||||
loginFragment = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginFragment()
|
||||
} else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
@@ -59,18 +69,24 @@ class LoginProvider : LoginService {
|
||||
} else {
|
||||
LoginFragment()
|
||||
}
|
||||
// 乘客屏监听司机端发送的业务修改通知(
|
||||
LanSocketManager.registerSocketMessageListener(
|
||||
DPMsgType.TYPE_LOGIN_INFO.type,
|
||||
changeBusinessType
|
||||
)
|
||||
}
|
||||
|
||||
override fun getFragment(): Fragment {
|
||||
CallerLogger.d(tag, "getFragment:${loginFragment}")
|
||||
if(loginFragment==null){
|
||||
loginFragment = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginFragment()
|
||||
} else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginPassengerFragment()
|
||||
} else {
|
||||
LoginFragment()
|
||||
}
|
||||
d(tag, "getFragment:${loginFragment}")
|
||||
if (loginFragment == null) {
|
||||
loginFragment =
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginFragment()
|
||||
} else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginPassengerFragment()
|
||||
} else {
|
||||
LoginFragment()
|
||||
}
|
||||
}
|
||||
return loginFragment!!
|
||||
}
|
||||
@@ -84,175 +100,74 @@ class LoginProvider : LoginService {
|
||||
return View(context)
|
||||
}
|
||||
|
||||
override fun setLoginStatus(status: Int) {
|
||||
CallerLogger.d(tag, "setLoginStatus:${status}")
|
||||
when (status) {
|
||||
0 -> {
|
||||
setLoginStatus(LoginStatusEnum.Logout)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
setLoginStatus(LoginStatusEnum.Login)
|
||||
}
|
||||
|
||||
else -> {
|
||||
setLoginStatus(LoginStatusEnum.None)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun queryLoginStatusByNet(readCatche:Boolean) {
|
||||
CallerLogger.d(tag, "queryLoginStatusByNet")
|
||||
Log.d("登录","设置源:queryLoginStatusByNet")
|
||||
LoginModel.queryCarStatus(readCatche)
|
||||
override fun queryLoginStatusByNet(readCatche: Boolean) {
|
||||
LoginServiceManager.queryLoginStatusByNet(readCatche)
|
||||
}
|
||||
|
||||
override fun loginOut() {
|
||||
CallerLogger.d(tag, "loginOut ")
|
||||
LoginModel.logout()
|
||||
}
|
||||
|
||||
override fun checkBusiness(businessType: Int): Boolean {
|
||||
val businessInfo = FlavorUtils.getBusinessInfo(businessType)
|
||||
if(businessInfo.isEmpty()){
|
||||
return true
|
||||
}
|
||||
if (loginFragment is ILoginViewCallback) {
|
||||
UiThreadHandler.post({
|
||||
if (loginFragment?.isAdded==true) {
|
||||
(loginFragment as ILoginViewCallback).showErrorInfo(businessInfo)
|
||||
}
|
||||
},UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
override fun checkAllEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
): Boolean {
|
||||
|
||||
val checkAllEnv = FlavorUtils.checkAllEnv(projectType, envType, vehicleType, businessType)
|
||||
if(checkAllEnv.isEmpty()){
|
||||
|
||||
}else{
|
||||
if (loginFragment is ILoginViewCallback) {
|
||||
changeStatus(checkAllEnv)
|
||||
UiThreadHandler.post({
|
||||
changeStatus(checkAllEnv)
|
||||
if (loginFragment?.isAdded==true) {
|
||||
(loginFragment as ILoginViewCallback).checkAllEnv(checkAllEnv)
|
||||
}
|
||||
},UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
|
||||
return checkAllEnv.isEmpty()
|
||||
LoginServiceManager.loginOut()
|
||||
}
|
||||
|
||||
override fun changeStatus(currentStatus: String) {
|
||||
if (loginFragment?.isAdded==true) {
|
||||
if (loginFragment?.isAdded == true) {
|
||||
(loginFragment as ILoginViewCallback).updateStatus(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun setLoginInfo(loginInfo: LoginInfo) {
|
||||
CallerLogger.d(tag, "setLoginInfo:${loginInfo}")
|
||||
if(this.loginInfo!=loginInfo){
|
||||
this.loginInfo = loginInfo
|
||||
OchChainLogManager.writeChainLog("登录信息",loginInfo.toString())
|
||||
}
|
||||
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchLoginNo(loginInfo.phone)
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchCarModel(Carmodel.getCarModelFromServerName(loginInfo.carModel,loginInfo.tenantId))
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchPlateNumber(loginInfo.plateNumber)
|
||||
CallerEagleBaseFunctionCall4OchManager.updateTenantId(loginInfo.tenantId)
|
||||
|
||||
val carModel = Carmodel.getCarModelFromServerName(LoginStatusManager.getLoginInfo()?.carModel,loginInfo.tenantId)
|
||||
if(this.carModel!=carModel){
|
||||
this.carModel = carModel
|
||||
LoginStatusManager.invokeCarModelChange(this.carModel)
|
||||
}
|
||||
HdMapBuildConfig.currentCarVrIconRes = carModel.rawValue
|
||||
|
||||
override fun getOchBizInfo(): OchBizInfo? {
|
||||
d(tag, "getOchBizInfo")
|
||||
return LoginServiceManager.getOchBizInfo()
|
||||
}
|
||||
|
||||
override fun getLoginInfo(): LoginInfo? {
|
||||
CallerLogger.d(tag, "getLoginInfo")
|
||||
return loginInfo
|
||||
override fun getOchCarInfo(): OchCarInfo? {
|
||||
d(tag, "getOchCarInfo")
|
||||
return LoginServiceManager.getOchCarInfo()
|
||||
}
|
||||
|
||||
override fun getPurpose(): RoleEnum {
|
||||
CallerLogger.d(tag, "getPurpose")
|
||||
return RoleEnum.valueOf(loginInfo?.purpose)
|
||||
override fun getOchLoginInfo(): OchLoginInfo? {
|
||||
d(tag, "getOchLoginInfo")
|
||||
return LoginServiceManager.getOchLoginInfo()
|
||||
}
|
||||
|
||||
override fun getPurpose(): EnumRole {
|
||||
d(tag, "getPurpose")
|
||||
return LoginServiceManager.getPurpose()
|
||||
}
|
||||
|
||||
override fun isLogin(): Boolean {
|
||||
CallerLogger.d(tag, "isLogin:${loginStatus == LoginStatusEnum.Login}")
|
||||
return loginStatus == LoginStatusEnum.Login
|
||||
return LoginServiceManager.isLogin()
|
||||
}
|
||||
|
||||
override fun getLoginStatus(): LoginStatusEnum {
|
||||
CallerLogger.d(tag, "getLoginStatus:${loginStatus}")
|
||||
return loginStatus
|
||||
override fun getLoginStatus(): EnumLoginStatus {
|
||||
return LoginServiceManager.getLoginStatuType()
|
||||
}
|
||||
|
||||
override fun getCarModel(): Carmodel {
|
||||
CallerLogger.d(tag, "getCarModel:${carModel}")
|
||||
return carModel
|
||||
override fun getCarModelType(): Carmodel {
|
||||
return LoginServiceManager.getCarModelType()
|
||||
}
|
||||
|
||||
|
||||
override fun setLoginStatus(loginStatus: LoginStatusEnum) {
|
||||
CallerLogger.d(tag, "setLoginStatus:${loginStatus}----old${this.loginStatus}")
|
||||
if (loginStatus != this.loginStatus) {
|
||||
OchChainLogManager.writeChainLog("登录状态变化","${this.loginStatus}-->${loginStatus}");
|
||||
this.loginStatus = loginStatus
|
||||
Log.d("登录","设置源:invokeLoginStatusChange")
|
||||
LoginStatusManager.invokeLoginStatusChange(loginStatus)
|
||||
}
|
||||
override fun getProductType(): Product {
|
||||
return LoginServiceManager.getProductType()
|
||||
}
|
||||
|
||||
|
||||
override fun setBusinessType(type: Int) {
|
||||
CallerLogger.d(tag, "setBusinessType:${type}")
|
||||
if (businessEnum.code != type) {
|
||||
this.businessEnum = Product.valueOf(type)
|
||||
LoginStatusManager.invokeLBusinessTypeChange(this.businessEnum)
|
||||
}
|
||||
override fun getVehicleType(): Vehicle {
|
||||
return LoginServiceManager.getVehicleType()
|
||||
}
|
||||
|
||||
override fun getBusinessType(): Product {
|
||||
CallerLogger.d(tag, "getBusinessType")
|
||||
return businessEnum
|
||||
override fun sendLogin2Client() {
|
||||
LoginServiceManager.sendLogin2Client(1)
|
||||
}
|
||||
|
||||
override fun setOpenOrderStatusType(type: Int) {
|
||||
CallerLogger.d(tag, "setOpenOrderStatusType:${type}")
|
||||
if (openOrderStatusEnum.code != type) {
|
||||
OchChainLogManager.writeChainLog("接单状态变化","${this.openOrderStatusEnum}-->${OpenOrderStatusEnum.valueOf(type)}");
|
||||
this.openOrderStatusEnum = OpenOrderStatusEnum.valueOf(type)
|
||||
LoginStatusManager.invokeLOpenOrderStatusChange(this.openOrderStatusEnum)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getOpenOrderStatusType(): OpenOrderStatusEnum {
|
||||
CallerLogger.d(tag, "getOpenOrderStatusType:${openOrderStatusEnum}")
|
||||
return openOrderStatusEnum
|
||||
override fun getOpenOrderStatusType(): EnumOpenOrderStatus {
|
||||
return LoginServiceManager.getOpenOrderStatusType()
|
||||
}
|
||||
|
||||
override fun isOpenOrderType(): Boolean {
|
||||
CallerLogger.d(tag, "isOpenOrderType:${openOrderStatusEnum == OpenOrderStatusEnum.Ordering}")
|
||||
return openOrderStatusEnum == OpenOrderStatusEnum.Ordering
|
||||
return LoginServiceManager.isOpenOrderType()
|
||||
}
|
||||
|
||||
override fun removeLoginInfo() {
|
||||
this.loginInfo = null
|
||||
OchSPManager.remove(loginInfoKey)
|
||||
LoginServiceManager.removeLoginInfo()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,485 @@
|
||||
package com.mogo.och.biz.login
|
||||
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.env.Env
|
||||
import com.mogo.commons.env.EnvUtils
|
||||
import com.mogo.commons.env.Project
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.commons.screen.ScreenHelper
|
||||
import com.mogo.commons.utils.MogoAnalyticUtils
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HdMapBuildConfig
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.ActivityUtils
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.biz.login.callback.ILoginViewCallback
|
||||
import com.mogo.och.biz.login.model.LoginModel
|
||||
import com.mogo.och.biz.login.bean.LoginInfo
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.EnumRole
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.manager.loop.LoopInfo
|
||||
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.LoginInfo2Client
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.utils.FlavorUtils
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
/**
|
||||
* 网约车小巴业务实现入口
|
||||
*/
|
||||
object LoginServiceManager {
|
||||
|
||||
private val tag = M_OCHCOMMON + "LoginManager"
|
||||
private var TAGLoopStatus = "LoginStatusManagerLoop"
|
||||
|
||||
// 登录页面
|
||||
private var loginFragment: Fragment? = null
|
||||
|
||||
// 登录状态
|
||||
private var loginStatus: EnumLoginStatus by Delegates.observable(EnumLoginStatus.None) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("登录状态变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "登录状态变化:${oldValue}-->${newValue}")
|
||||
if (newValue == EnumLoginStatus.Login && AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
BizLoopManager.setLoopFunction(
|
||||
TAGLoopStatus,
|
||||
LoopInfo(60 * 2, ::queryLoginStatusByNet, immediately = false, scheduler = Schedulers.io())
|
||||
)
|
||||
} else {
|
||||
BizLoopManager.removeLoopFunction(TAGLoopStatus)
|
||||
}
|
||||
LoginStatusManager.invokeLoginStatusChange(loginStatus)
|
||||
}
|
||||
}
|
||||
|
||||
// 业务模式
|
||||
private var productEnum: Product by Delegates.observable(Product.NONE) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("业务模式发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "业务模式发生变化:${oldValue}-->${newValue}")
|
||||
onProductChange(newValue)
|
||||
LoginStatusManager.invokeLProductChange(newValue)
|
||||
CallerEagleBaseFunctionCall4OchManager.onOchProductChange()
|
||||
}
|
||||
}
|
||||
|
||||
// 车型
|
||||
private var vehicleEnum: Vehicle by Delegates.observable(Vehicle.NONE) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("车型发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "车型发生变化:${oldValue}-->${newValue}")
|
||||
onVehicleChange(newValue)
|
||||
LoginStatusManager.invokeLVehicleChange(newValue)
|
||||
CallerEagleBaseFunctionCall4OchManager.onOchVehicleChange()
|
||||
}
|
||||
}
|
||||
|
||||
// 接单状态
|
||||
private var openOrderStatusEnum: EnumOpenOrderStatus by Delegates.observable(EnumOpenOrderStatus.None) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("接单状态变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "接单状态变化:${oldValue}-->${newValue}")
|
||||
LoginStatusManager.invokeOpenOrderStatusChange(this.openOrderStatusEnum)
|
||||
}
|
||||
}
|
||||
|
||||
// 车模
|
||||
private var carModel: Carmodel by Delegates.observable(Carmodel.T2) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("车辆模型发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "车辆模型发生变化:${oldValue}-->${newValue}")
|
||||
HdMapBuildConfig.currentCarVrIconRes = newValue.rawValue
|
||||
LoginStatusManager.invokeCarModelChange(newValue)
|
||||
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchCarModel(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
private var phoneNum: String by Delegates.observable("") { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("手机号发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "手机号发生变化:${oldValue}-->${newValue}")
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchLoginNo(newValue)
|
||||
}
|
||||
}
|
||||
private var plateNumber: String by Delegates.observable("") { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("车牌号发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "车牌号发生变化:${oldValue}-->${newValue}")
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchPlateNumber(newValue)
|
||||
}
|
||||
}
|
||||
private var tenantId: Long by Delegates.observable(0L) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("租户Id发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "租户Id发生变化:${oldValue}-->${newValue}")
|
||||
LoginStatusManager.invokeTenantIdChange(newValue)
|
||||
CallerEagleBaseFunctionCall4OchManager.updateTenantId(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 登录信息
|
||||
private var loginInfo: LoginInfo? = null
|
||||
|
||||
// 登录账号信息
|
||||
private var ochLoginInfo: OchLoginInfo? = null
|
||||
|
||||
// 车辆信息
|
||||
private var ochCarInfo: OchCarInfo? = null
|
||||
|
||||
// 业务信息
|
||||
private var ochBizInfo: OchBizInfo? = null
|
||||
|
||||
private val loginInfoKey = "LOGININFOKEY"
|
||||
|
||||
private const val OCHLOGININFOKEY = "OCHLOGININFOKEY"
|
||||
private const val OCHBIZINFOKEY = "OCHBIZINFOKEY"
|
||||
private const val OCHCARINFOKEY = "OCHCARINFOKEY"
|
||||
|
||||
private const val OCHPRODUCT = "OCHPRODUCT"
|
||||
private const val OCHVEHICLE = "OCHVEHICLE"
|
||||
|
||||
init {
|
||||
initProductAndVehicle()
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看是否提前设置上
|
||||
*/
|
||||
private fun initProductAndVehicle() {
|
||||
productEnum = AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode)
|
||||
vehicleEnum =AppIdentityModeUtils.getVehicle(FunctionBuildConfig.appIdentityMode)
|
||||
|
||||
}
|
||||
|
||||
fun queryLoginStatusByNet() {
|
||||
LoginModel.queryCarStatus(false)
|
||||
}
|
||||
|
||||
fun queryLoginStatusByNet(readCatche: Boolean) {
|
||||
d(tag, "queryLoginStatusByNet")
|
||||
LoginModel.queryCarStatus(readCatche)
|
||||
}
|
||||
|
||||
fun loginOut() {
|
||||
d(tag, "loginOut ")
|
||||
LoginModel.logout()
|
||||
}
|
||||
|
||||
fun checkAllEnv(
|
||||
projectType: Project,
|
||||
envType: Env,
|
||||
): Boolean {
|
||||
val checkAllEnv = FlavorUtils.checkAllEnv(projectType, envType)
|
||||
if (checkAllEnv.isNotEmpty()) {
|
||||
if (loginFragment is ILoginViewCallback) {
|
||||
changeStatus(checkAllEnv)
|
||||
UiThreadHandler.post({
|
||||
changeStatus(checkAllEnv)
|
||||
if (loginFragment?.isAdded == true) {
|
||||
(loginFragment as ILoginViewCallback).checkAllEnv(checkAllEnv)
|
||||
}
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
|
||||
return checkAllEnv.isEmpty()
|
||||
}
|
||||
|
||||
fun changeStatus(currentStatus: String) {
|
||||
if (loginFragment?.isAdded == true) {
|
||||
(loginFragment as ILoginViewCallback).updateStatus(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置登录信息
|
||||
* 1、乘客屏从司机端获取到登录信息
|
||||
* 2、支持老版本数据升级
|
||||
* 3、
|
||||
*/
|
||||
fun setLoginInfo(loginInfo: LoginInfo) {
|
||||
d(tag, "setLoginInfo:${loginInfo}")
|
||||
if (this.loginInfo != loginInfo) {
|
||||
this.loginInfo = loginInfo
|
||||
saveInfo2SP(loginInfoKey, loginInfo)
|
||||
sendLogin2Client(1)
|
||||
|
||||
val ochLoginInfo = loginInfo.toOchLoginInfo()
|
||||
if (ochLoginInfo != this.ochLoginInfo) {
|
||||
this.ochLoginInfo = ochLoginInfo
|
||||
saveInfo2SP(OCHLOGININFOKEY, ochLoginInfo)
|
||||
}
|
||||
val ochCarInfo = loginInfo.toOchCarInfo()
|
||||
if (this.ochCarInfo != ochCarInfo) {
|
||||
this.ochCarInfo = ochCarInfo
|
||||
saveInfo2SP(OCHCARINFOKEY, ochCarInfo)
|
||||
}
|
||||
val ochBizInfo = loginInfo.toOchBizInfo()
|
||||
if (this.ochBizInfo != ochBizInfo) {
|
||||
this.ochBizInfo = ochBizInfo
|
||||
saveInfo2SP(OCHBIZINFOKEY, ochBizInfo)
|
||||
}
|
||||
|
||||
OchChainLogManager.writeChainLog("登录信息", loginInfo.toString())
|
||||
}
|
||||
// 设置业务模式
|
||||
setProductType(Product.valueOf(loginInfo.businessType))
|
||||
// 设置登录状态
|
||||
setLoginStatusType(EnumLoginStatus.valueOf(loginInfo.driverStatus))
|
||||
// 设置接单状态
|
||||
setOpenOrderStatusType(EnumOpenOrderStatus.valueOf(loginInfo.servingStatus))
|
||||
|
||||
// 设置车型
|
||||
setVehicleType(Vehicle.getCarVehicleFromServerName(loginInfo.carModel))
|
||||
|
||||
// 设置车辆模型
|
||||
setCarModelType(Carmodel.getCarModelFromServerName(loginInfo.carModel, loginInfo.tenantId))
|
||||
|
||||
this.phoneNum = loginInfo.phone ?: ""
|
||||
this.plateNumber = loginInfo.plateNumber ?: ""
|
||||
this.tenantId = loginInfo.tenantId
|
||||
|
||||
}
|
||||
|
||||
fun getLoginInfo(): LoginInfo? {
|
||||
d(tag, "getLoginInfo")
|
||||
if (loginInfo == null) {
|
||||
this.loginInfo = getInfoFromSp<LoginInfo>(loginInfoKey)
|
||||
}
|
||||
return loginInfo
|
||||
}
|
||||
|
||||
fun getOchBizInfo(): OchBizInfo? {
|
||||
supply6100()
|
||||
d(tag, "getOchBizInfo")
|
||||
if (ochBizInfo == null) {
|
||||
this.ochBizInfo = getInfoFromSp<OchBizInfo>(OCHBIZINFOKEY)
|
||||
}
|
||||
return ochBizInfo
|
||||
}
|
||||
|
||||
fun getOchCarInfo(): OchCarInfo? {
|
||||
supply6100()
|
||||
d(tag, "getOchCarInfo")
|
||||
if (ochCarInfo == null) {
|
||||
this.ochCarInfo = getInfoFromSp<OchCarInfo>(OCHCARINFOKEY)
|
||||
}
|
||||
return ochCarInfo
|
||||
}
|
||||
|
||||
fun getOchLoginInfo(): OchLoginInfo? {
|
||||
supply6100()
|
||||
d(tag, "getOchLoginInfo")
|
||||
if (ochLoginInfo == null) {
|
||||
this.ochLoginInfo = getInfoFromSp<OchLoginInfo>(OCHLOGININFOKEY)
|
||||
}
|
||||
return ochLoginInfo
|
||||
}
|
||||
|
||||
fun getPurpose(): EnumRole {
|
||||
d(tag, "getPurpose")
|
||||
return EnumRole.valueOf(loginInfo?.purpose)
|
||||
}
|
||||
|
||||
fun isLogin(): Boolean {
|
||||
d(tag, "isLogin:${loginStatus == EnumLoginStatus.Login}")
|
||||
return loginStatus == EnumLoginStatus.Login
|
||||
}
|
||||
|
||||
fun getLoginStatuType(): EnumLoginStatus {
|
||||
d(tag, "getLoginStatus:${loginStatus}")
|
||||
return loginStatus
|
||||
}
|
||||
|
||||
fun setCarModelType(carModel: Carmodel) {
|
||||
d(tag, "setCarModel:${carModel}")
|
||||
this.carModel = carModel
|
||||
}
|
||||
|
||||
fun getCarModelType(): Carmodel {
|
||||
d(tag, "getCarModel:${carModel}")
|
||||
return this.carModel
|
||||
}
|
||||
|
||||
fun setLoginStatusType(loginStatus: EnumLoginStatus) {
|
||||
d(tag, "setLoginStatus:${this.loginStatus}---->${loginStatus}")
|
||||
this.loginStatus = loginStatus
|
||||
}
|
||||
|
||||
|
||||
fun setProductType(product: Product) {
|
||||
d(tag, "setProductType:${product}")
|
||||
this.productEnum = product
|
||||
}
|
||||
|
||||
fun getProductType(): Product {
|
||||
d(tag, "getBusinessType:${productEnum}")
|
||||
return productEnum
|
||||
}
|
||||
|
||||
fun setVehicleType(vehicle: Vehicle) {
|
||||
d(tag, "setVehicleType:${vehicle}")
|
||||
this.vehicleEnum = vehicle
|
||||
}
|
||||
|
||||
fun getVehicleType(): Vehicle {
|
||||
d(tag, "getVehicleType:${vehicleEnum}")
|
||||
return vehicleEnum
|
||||
}
|
||||
|
||||
fun setOpenOrderStatusType(type: EnumOpenOrderStatus) {
|
||||
d(tag, "setOpenOrderStatusType:${type}")
|
||||
this.openOrderStatusEnum = type
|
||||
}
|
||||
|
||||
fun getOpenOrderStatusType(): EnumOpenOrderStatus {
|
||||
d(tag, "getOpenOrderStatusType:${openOrderStatusEnum}")
|
||||
return openOrderStatusEnum
|
||||
}
|
||||
|
||||
fun isOpenOrderType(): Boolean {
|
||||
d(
|
||||
tag,
|
||||
"isOpenOrderType:${openOrderStatusEnum == EnumOpenOrderStatus.Ordering}"
|
||||
)
|
||||
return openOrderStatusEnum == EnumOpenOrderStatus.Ordering
|
||||
}
|
||||
|
||||
fun removeLoginInfo() {
|
||||
this.loginInfo = null
|
||||
OchSPManager.remove(loginInfoKey)
|
||||
}
|
||||
|
||||
|
||||
private fun saveInfo2SP(key: String, value: Any) {
|
||||
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
|
||||
val loginInfo4Json = GsonUtils.toJson(value)
|
||||
OchSPManager.putString(key, timeText + loginInfo4Json)
|
||||
}
|
||||
|
||||
inline fun <reified T> getInfoFromSp(key: String): T? {
|
||||
val logingInfoJson = OchSPManager.getString(key)
|
||||
logingInfoJson?.let { logininfo ->
|
||||
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
|
||||
if (logininfo.startsWith(timeText)) {
|
||||
val json = logingInfoJson.replace(timeText, "")
|
||||
val oldLoginInfo = GsonUtils.fromJson(json, T::class.java)
|
||||
return oldLoginInfo
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
private fun supply6100() {
|
||||
val loginInfo = getLoginInfo()
|
||||
if (ochCarInfo == null && loginInfo != null) {
|
||||
setLoginInfo(loginInfo)
|
||||
}
|
||||
}
|
||||
|
||||
private fun onProductChange(businessEnum: Product){
|
||||
val (_, identity, model) = AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode)
|
||||
when (businessEnum) {
|
||||
Product.NONE -> {}
|
||||
Product.TAXI -> {
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.TAXI}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.TAXI)
|
||||
}
|
||||
|
||||
Product.BUS ->{
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.BUS}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.BUS)
|
||||
}
|
||||
|
||||
Product.SHUTTLE -> {
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.SHUTTLE}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.SHUTTLE)
|
||||
}
|
||||
|
||||
Product.CHARTER -> {
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.CHARTER}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.CHARTER)
|
||||
}
|
||||
|
||||
Product.SCHEDULED -> {
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.SCHEDULED}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.SCHEDULED)
|
||||
}
|
||||
}
|
||||
ScreenHelper.setScreenConfig(AbsMogoApplication.getApp())
|
||||
CallerDevaToolsManager.updateAppChannel()
|
||||
// 加入启动统计
|
||||
val mStartParams: HashMap<String, Any> = HashMap()
|
||||
mStartParams["start_time"] = TimeUtils.getNowMills()
|
||||
mStartParams["app_version"] = AppUtils.getAppVersionName()
|
||||
mStartParams["app_identity_mode"] = FunctionBuildConfig.appIdentityMode
|
||||
MogoAnalyticUtils.track("app_start_time", mStartParams)
|
||||
}
|
||||
|
||||
private fun onVehicleChange(vehicle: Vehicle) {
|
||||
val tempInfo = FunctionBuildConfig.appIdentityMode
|
||||
val (product, identity, model) = AppIdentityModeUtils.getInfo(tempInfo)
|
||||
FunctionBuildConfig.appIdentityMode = "${product}_${identity}_${vehicle.code}"
|
||||
OchSPManager.putString(OCHVEHICLE,vehicle.code)
|
||||
ScreenHelper.setScreenConfig(AbsMogoApplication.getApp())
|
||||
|
||||
if (vehicle == Vehicle.B2 && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
BizLoopManager.runInMainThread{
|
||||
ActivityUtils.getTopActivity().requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT
|
||||
}
|
||||
}
|
||||
|
||||
CallerDevaToolsManager.updateAppChannel()
|
||||
OchChainLogManager.writeChainLogInit("车辆信息","修改车型${tempInfo}--->${FunctionBuildConfig.appIdentityMode}")
|
||||
}
|
||||
|
||||
/**
|
||||
* 向乘客端发送登录信息
|
||||
*/
|
||||
fun sendLogin2Client(count: Int) {
|
||||
if(count>3){
|
||||
return
|
||||
}
|
||||
if (loginInfo==null) {
|
||||
RxUtils.createSubscribeOnOwnThread {
|
||||
sendLogin2Client(count+1)
|
||||
}
|
||||
}else{
|
||||
val toJson = GsonUtils.toJson(loginInfo)
|
||||
val msg = LoginInfo2Client(toJson,ProjectUtils.getProjectType(),EnvUtils.getEnvType())
|
||||
LanSocketManager.sendMsgToClient(msg)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mogo.och.biz.login.bean;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.common.module.biz.login.LoginInfo;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
package com.mogo.och.biz.login.bean
|
||||
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import java.util.Objects
|
||||
|
||||
class LoginInfo {
|
||||
var driverStatus: Int = 0 //1登录,0登出
|
||||
var servingStatus: Int = 0 //1接单中,0暂停接单
|
||||
var businessType: Int = 0 //9: taxi. 10: bus公交 11:接驳 13:包车
|
||||
var orderNo: String? = null
|
||||
var purpose: Int = 0 // 1 运营, 2 测试, 3演示
|
||||
var sn: String? = null
|
||||
var plateNumber: String? = null //车牌号
|
||||
var phone: String? = null //手机号
|
||||
var lineId: Long? = null //线路id
|
||||
var taskId: Long? = null //任务id
|
||||
var siteId: Long? = null //站点id 包车使用
|
||||
var currentSite: Long? = null //当前站点 接驳、公交、班车使用
|
||||
var leaving: Boolean? = null // 当前站点是否出发
|
||||
var shiftsId: Long? = null //模板id
|
||||
var taskDate: Long? = null // 任务或模板的日期
|
||||
var vin: String? = null //车辆唯一识别码
|
||||
var cityCode: String? = null //城市编码
|
||||
var brand: String? = null //东风
|
||||
|
||||
//
|
||||
// E70 东风 H9 红旗
|
||||
// B2 B1 M1
|
||||
var carModel: String? = null
|
||||
var photos: String? = null //车身照片:
|
||||
var tenantId: Long = 0 //租户id:
|
||||
var driverId: Long = 0
|
||||
|
||||
var businessStatus: Long = 0 //?????
|
||||
|
||||
fun toOchBizInfo(): OchBizInfo {
|
||||
return OchBizInfo(
|
||||
businessType,
|
||||
orderNo?:"",
|
||||
servingStatus,
|
||||
lineId?:0,
|
||||
taskId?:0,
|
||||
currentSite?:0,
|
||||
leaving?:false,
|
||||
shiftsId?:0,
|
||||
taskDate?:0,
|
||||
siteId?:0,
|
||||
businessStatus
|
||||
)
|
||||
}
|
||||
|
||||
fun toOchCarInfo(): OchCarInfo {
|
||||
return OchCarInfo(plateNumber,vin,cityCode,brand,carModel,photos,tenantId)
|
||||
}
|
||||
|
||||
fun toOchLoginInfo(): OchLoginInfo {
|
||||
return OchLoginInfo(
|
||||
driverStatus,
|
||||
purpose,
|
||||
sn?:"",
|
||||
phone?:"",
|
||||
driverId
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
override fun toString(): String {
|
||||
return "LoginInfo{" +
|
||||
"driverStatus=" + driverStatus +
|
||||
", servingStatus=" + servingStatus +
|
||||
", businessType=" + businessType +
|
||||
", orderNo='" + orderNo + '\'' +
|
||||
", purpose=" + purpose +
|
||||
", sn='" + sn + '\'' +
|
||||
", plateNumber='" + plateNumber + '\'' +
|
||||
", phone='" + phone + '\'' +
|
||||
", lineId=" + lineId +
|
||||
", taskId=" + taskId +
|
||||
", siteId=" + siteId +
|
||||
", vin='" + vin + '\'' +
|
||||
", cityCode='" + cityCode + '\'' +
|
||||
", brand='" + brand + '\'' +
|
||||
", carModel='" + carModel + '\'' +
|
||||
", photos='" + photos + '\'' +
|
||||
", tenantId=" + tenantId +
|
||||
", driverId=" + driverId +
|
||||
", businessStatus=" + businessStatus +
|
||||
'}'
|
||||
}
|
||||
|
||||
override fun equals(o: Any?): Boolean {
|
||||
if (this === o) return true
|
||||
if (o == null || javaClass != o.javaClass) return false
|
||||
|
||||
val loginInfo = o as LoginInfo
|
||||
return driverStatus == loginInfo.driverStatus && servingStatus == loginInfo.servingStatus && businessType == loginInfo.businessType && purpose == loginInfo.purpose && tenantId == loginInfo.tenantId && driverId == loginInfo.driverId && businessStatus == loginInfo.businessStatus && orderNo == loginInfo.orderNo && sn == loginInfo.sn && plateNumber == loginInfo.plateNumber && phone == loginInfo.phone && lineId == loginInfo.lineId && taskId == loginInfo.taskId && siteId == loginInfo.siteId && vin == loginInfo.vin && cityCode == loginInfo.cityCode && brand == loginInfo.brand && carModel == loginInfo.carModel && photos == loginInfo.photos
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
var result = driverStatus
|
||||
result = 31 * result + servingStatus
|
||||
result = 31 * result + businessType
|
||||
result = 31 * result + Objects.hashCode(orderNo)
|
||||
result = 31 * result + purpose
|
||||
result = 31 * result + Objects.hashCode(sn)
|
||||
result = 31 * result + Objects.hashCode(plateNumber)
|
||||
result = 31 * result + Objects.hashCode(phone)
|
||||
result = 31 * result + Objects.hashCode(lineId)
|
||||
result = 31 * result + Objects.hashCode(taskId)
|
||||
result = 31 * result + Objects.hashCode(siteId)
|
||||
result = 31 * result + Objects.hashCode(vin)
|
||||
result = 31 * result + Objects.hashCode(cityCode)
|
||||
result = 31 * result + Objects.hashCode(brand)
|
||||
result = 31 * result + Objects.hashCode(carModel)
|
||||
result = 31 * result + Objects.hashCode(photos)
|
||||
result = 31 * result + java.lang.Long.hashCode(tenantId)
|
||||
result = 31 * result + java.lang.Long.hashCode(driverId)
|
||||
result = 31 * result + java.lang.Long.hashCode(businessStatus)
|
||||
return result
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
|
||||
interface ILoginViewCallback {
|
||||
fun showErrorInfo(errorInfo: String)
|
||||
fun showErrorInfo(errorInfo: String){}
|
||||
|
||||
fun checkAllEnv(
|
||||
reason:String
|
||||
|
||||
@@ -6,8 +6,7 @@ package com.mogo.och.biz.login.callback;
|
||||
* Model->Presenter回调:订单相关(进行中/待服务单变更,当前进行单状态变更,新到预约单,抢单,抢单结果状态等等)
|
||||
*/
|
||||
public interface ITaxiLoginCallback {
|
||||
void getPhoneCodeSuccess();
|
||||
default void searchStatusSuccess(){}
|
||||
default void getPhoneCodeSuccess(){}
|
||||
|
||||
void netErrorCallback();
|
||||
default void netErrorCallback(){}
|
||||
}
|
||||
|
||||
@@ -11,17 +11,12 @@ import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.commons.utils.MogoAnalyticUtils
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
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.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
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
|
||||
import com.mogo.och.biz.login.LoginConst
|
||||
import com.mogo.och.biz.login.LoginServiceManager
|
||||
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginRespBean
|
||||
@@ -29,19 +24,14 @@ 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.bridge.autopilot.location.OchLocationManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum.Companion.valueOf
|
||||
import com.mogo.och.biz.login.bean.LoginInfo
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.cache.ISpCallback
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
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
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.ToastUtilsOch
|
||||
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
|
||||
import com.mogo.och.data.manager.cache.CacheDataManager
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.disposables.Disposable
|
||||
import java.util.concurrent.TimeUnit
|
||||
@@ -66,17 +56,20 @@ object LoginModel {
|
||||
private val mNetWorkIntentListener = IMogoIntentListener { intentStr, _ ->
|
||||
d(TAG, "onIntentReceived = %s", intentStr)
|
||||
if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) {
|
||||
if (NetworkUtils.isConnected(mContext)) {
|
||||
if (NetworkUtils.isConnected(mContext)
|
||||
&& AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
// 网络链接成功可以先读取本地再获取服务器
|
||||
queryCarStatus()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val snChangeListener = object :ISpCallback{
|
||||
private val snChangeListener = object : ISpCallback {
|
||||
override fun snChange() {
|
||||
d(TAG, "sn 发生变化${OchSPManager.getSn()}")
|
||||
queryCarStatus(false)
|
||||
if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
queryCarStatus(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,26 +79,18 @@ object LoginModel {
|
||||
.registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener)
|
||||
}
|
||||
|
||||
fun init(context: Context) {
|
||||
|
||||
}
|
||||
|
||||
fun hasInit(): Boolean {
|
||||
return iTaxiLoginCallback != null
|
||||
}
|
||||
|
||||
fun getiTaxiLoginCallback(): ITaxiLoginCallback? {
|
||||
return iTaxiLoginCallback
|
||||
}
|
||||
|
||||
fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) {
|
||||
d(TAG,"setiTaxiLoginCallback")
|
||||
OchSPManager.addListener(TAG,snChangeListener)
|
||||
d(TAG, "setiTaxiLoginCallback")
|
||||
OchSPManager.addListener(TAG, snChangeListener)
|
||||
LoginModel.iTaxiLoginCallback = iTaxiLoginCallback
|
||||
}
|
||||
|
||||
fun release() {
|
||||
d(TAG,"release")
|
||||
d(TAG, "release")
|
||||
OchSPManager.remove(TAG)
|
||||
iTaxiLoginCallback = null
|
||||
}
|
||||
@@ -114,11 +99,11 @@ object LoginModel {
|
||||
* 获取手机验证码
|
||||
*/
|
||||
fun getPhoneCode(phone: String?) {
|
||||
if(mContext==null){
|
||||
OchChainLogManager.writeChainLog("登录页面","获取验证码 mContext${mContext}")
|
||||
}else {
|
||||
if (mContext == null) {
|
||||
OchChainLogManager.writeChainLog("登录页面", "获取验证码 mContext${mContext==null}")
|
||||
} else {
|
||||
mContext?.let {
|
||||
OchChainLogManager.writeChainLog("登录页面","网络请求去获取验证码")
|
||||
OchChainLogManager.writeChainLog("登录页面", "网络请求去获取验证码")
|
||||
OchCommonServiceManager.getPhoneCode(it, phone,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
@@ -188,48 +173,43 @@ object LoginModel {
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询
|
||||
* 1、初始化查询
|
||||
* 2、错误重试
|
||||
* 3、错误重试
|
||||
* 4、登出后重试
|
||||
* 5、变更出车状态查下
|
||||
* 6、变更出车状态查下
|
||||
* 7、网络状态变更后查询
|
||||
* 8、登录页面关闭后查下状态
|
||||
* 1、司机端登录成功后开启2分钟定时请求登录状态
|
||||
* 2、对外提供查询登录状态
|
||||
* 3、网络状态发生变化后查询
|
||||
* 4、sn 发生变化后查询
|
||||
* 5、登录成功后主动查询
|
||||
* 6、错误重试
|
||||
* 7、错误重试
|
||||
* 8、登出后重试
|
||||
*/
|
||||
fun queryCarStatus(readCatche:Boolean = true) {
|
||||
fun queryCarStatus(readCatche: Boolean = true) {
|
||||
mContext?.let {
|
||||
Log.d(TAG,"设置源:queryCarStatus")
|
||||
if(readCatche){
|
||||
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,"缓存获取")
|
||||
}
|
||||
}
|
||||
Log.d(TAG, "设置源:queryCarStatus")
|
||||
if (readCatche) {
|
||||
val loginInfo = LoginServiceManager.getLoginInfo()
|
||||
go2LoginInfo(loginInfo,"缓存获取")
|
||||
}
|
||||
OchCommonServiceManager.queryDriverServiceStatus(it, object : OchCommonServiceCallback<DriverStatusQueryRespBean> {
|
||||
override fun onSuccess(data: DriverStatusQueryRespBean?) {
|
||||
OchCommonServiceManager.queryDriverServiceStatus(
|
||||
it,
|
||||
object : OchCommonServiceCallback<DriverStatusQueryRespBean> {
|
||||
override fun onSuccess(data: DriverStatusQueryRespBean) {
|
||||
val map: MutableMap<String, Any> = HashMap()
|
||||
map["msg"] = data.toString()
|
||||
MogoAnalyticUtils.track("QueryCarStatus",map)
|
||||
go2LoginInfo(data,"接口获取")
|
||||
MogoAnalyticUtils.track("QueryCarStatus", map)
|
||||
go2LoginInfo(data.data, "接口获取")
|
||||
}
|
||||
|
||||
override fun onError() {
|
||||
val map: MutableMap<String, Any> = HashMap()
|
||||
map["msg"] = "网络错误"
|
||||
MogoAnalyticUtils.track("QueryCarStatus",map)
|
||||
MogoAnalyticUtils.track("QueryCarStatus", map)
|
||||
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
ToastCharterUtils.showToastShort(mContext!!.getString(R.string.network_error_tip))
|
||||
} else {
|
||||
ToastCharterUtils.showToastShort(mContext!!.getString(R.string.request_error_tip))
|
||||
}
|
||||
LoginStatusManager.setLoginError(-10012,"网络错误")
|
||||
LoginStatusManager.setLoginError(-10012, "网络错误")
|
||||
// 依赖参数
|
||||
subscribe = Observable.timer(5, TimeUnit.SECONDS)
|
||||
.subscribe { _: Long? -> queryCarStatus(readCatche) }
|
||||
@@ -239,9 +219,9 @@ object LoginModel {
|
||||
val map: MutableMap<String, Any> = HashMap()
|
||||
map["msg"] = msg
|
||||
map["code"] = code
|
||||
MogoAnalyticUtils.track("QueryCarStatus",map)
|
||||
MogoAnalyticUtils.track("QueryCarStatus", map)
|
||||
|
||||
LoginStatusManager.setLoginError(code,"msg:${msg}")
|
||||
LoginStatusManager.setLoginError(code, "msg:${msg}")
|
||||
ToastUtilsOch.showWithCodeMessage(code, msg)
|
||||
// 依赖参数
|
||||
subscribe = Observable.timer(3, TimeUnit.SECONDS)
|
||||
@@ -249,7 +229,6 @@ object LoginModel {
|
||||
// if (code == OchCommonConst.WAIT_TAKEN) {
|
||||
//
|
||||
// } else {
|
||||
loginFail(LoginStatusManager.isLogin())
|
||||
// }
|
||||
}
|
||||
})
|
||||
@@ -257,34 +236,10 @@ object LoginModel {
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
private fun go2LoginInfo(data: DriverStatusQueryRespBean?, source: String) {
|
||||
d(TAG,"设置源:${source}")
|
||||
private fun go2LoginInfo(data: LoginInfo?, source: String) {
|
||||
d(TAG, "设置源:${source}")
|
||||
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(TAG, "登录信息:$data")
|
||||
LoginServiceManager.setLoginInfo(data)
|
||||
loginSuccess(data)
|
||||
}
|
||||
}
|
||||
@@ -292,18 +247,11 @@ object LoginModel {
|
||||
// 登出
|
||||
fun logout() {
|
||||
val location4Login = TaxiLogoutReqBean.Location4Login()
|
||||
if (FunctionBuildConfig.isOffLine) {
|
||||
d(TAG, "离线模式登录后退出 setLoginStatus:${LoginStatusEnum.Logout}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
|
||||
FunctionBuildConfig.isOffLine = false
|
||||
return
|
||||
}
|
||||
OchCommonServiceManager.logout(
|
||||
mContext!!, location4Login,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
if (null != data && 0 == data.code) {
|
||||
loginFail(false)
|
||||
OchSPManager.remove(loginInfoKey)
|
||||
// 退出登录成功需要查询新的
|
||||
queryCarStatus(false)
|
||||
@@ -320,44 +268,22 @@ object LoginModel {
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
ToastUtilsOch.showWithCodeMessage(code, msg)
|
||||
if(!LoginStatusManager.isLogin()){
|
||||
LoginStatusManager.invokeLBusinessTypeChangeDebug(Product.NONE)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun loginSuccess(data: DriverStatusQueryRespBean?) {
|
||||
d(TAG, "loginSuccess:${LoginStatusManager.isLogin()}")
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
SharedPrefsMgr.getInstance().putString("och_account", data?.data?.phone)
|
||||
fun loginSuccess(data: LoginInfo?) {
|
||||
d(TAG, "loginSuccess:${LoginServiceManager.isLogin()}")
|
||||
if (LoginServiceManager.isLogin()) {
|
||||
SharedPrefsMgr.getInstance().putString("och_account", data?.phone)
|
||||
} else {
|
||||
SharedPrefsMgr.getInstance().putString("och_account", "")
|
||||
}
|
||||
|
||||
data?.data?.driverStatus?.let { updateLoginLocalStatus(it) }
|
||||
}
|
||||
|
||||
private fun updateLoginLocalStatus(loginStatus: Int = 0) {
|
||||
val loginCacheStatus = LoginCacheStatus(loginStatus, DateTimeUtil.getCurrentTimeStamp())
|
||||
mContext?.let {
|
||||
CacheDataManager.instance.putCacheData(
|
||||
it, BusCacheKey.BUS_LOGIN_STATUS_CACHE,
|
||||
GsonUtils.toJson(loginCacheStatus))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun loginFail(isLogin: Boolean) {
|
||||
d(TAG, "loginFail:$isLogin")
|
||||
updateLoginLocalStatus(0)
|
||||
}
|
||||
|
||||
fun gotoOfflineMode() {
|
||||
FunctionBuildConfig.isOffLine = true
|
||||
d(TAG, "离线模式登录 setLoginStatus:${LoginStatusEnum.Login}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Login)
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchLoginNo(LoginConst.OFFLINEPHONE)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -77,7 +77,7 @@ object OchCommonServiceManager {
|
||||
location4Login: TaxiLoginReqBean.Location4Login,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
CallerLogger.d(TAG, "gotoLoginBycode:通过手机验证码登录:${phone}---${code}");
|
||||
CallerLogger.d(TAG, "gotoLoginBycode:通过手机验证码登录:${phone}---${code}")
|
||||
val sn = OchSPManager.getSn()
|
||||
if (ProjectUtils.isMogo()) {
|
||||
ochLoginServiceMogo.gotoLoginBycode(
|
||||
@@ -103,7 +103,7 @@ object OchCommonServiceManager {
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
CallerLogger.d(TAG, "logout:登出");
|
||||
CallerLogger.d(TAG, "logout:登出")
|
||||
if (ProjectUtils.isMogo()) {
|
||||
ochLoginServiceMogo.logout(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@@ -143,14 +143,14 @@ object OchCommonServiceManager {
|
||||
LoginLanPassengerSocket.driverSn
|
||||
}
|
||||
if(sn.isNullOrEmpty()){
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 没有有效的sn");
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 没有有效的sn")
|
||||
return
|
||||
}
|
||||
if(FunctionBuildConfig.ochdebug){
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 ochdebug模式");
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 ochdebug模式")
|
||||
return
|
||||
}
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态${sn}");
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态${sn}")
|
||||
if (ProjectUtils.isMogo()) {
|
||||
ochLoginServiceMogo.queryDriverServiceStatusAndLoginStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
|
||||
@@ -26,7 +26,6 @@ class LoginPassengerPresenter(view: LoginPassengerFragment?) : Presenter<LoginPa
|
||||
}
|
||||
|
||||
private fun initListeners() {
|
||||
LoginModel.init(AbsMogoApplication.getApp())
|
||||
LoginModel.setiTaxiLoginCallback(this)
|
||||
BizLoopManager.setLoopFunction(TAG, LoopInfo(2,::showStatus))
|
||||
}
|
||||
@@ -45,12 +44,4 @@ class LoginPassengerPresenter(view: LoginPassengerFragment?) : Presenter<LoginPa
|
||||
BizLoopManager.removeLoopFunction(TAG)
|
||||
}
|
||||
|
||||
override fun getPhoneCodeSuccess() {
|
||||
|
||||
}
|
||||
|
||||
override fun netErrorCallback() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,15 +3,20 @@ package com.mogo.och.biz.login.presenter
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.mvp.Presenter
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.RegexUtils
|
||||
import com.mogo.eagle.core.utilcode.util.StringUtils
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.login.LoginConst
|
||||
import com.mogo.och.biz.login.LoginServiceManager
|
||||
import com.mogo.och.biz.login.callback.ITaxiLoginCallback
|
||||
import com.mogo.och.biz.login.ui.LoginFragment
|
||||
import com.mogo.och.biz.login.model.LoginModel
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
|
||||
@@ -27,26 +32,30 @@ import java.util.concurrent.TimeUnit
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), ITaxiLoginCallback {
|
||||
class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), ITaxiLoginCallback,
|
||||
ILoginCallback {
|
||||
|
||||
private var countDownDisposable: Disposable? = null
|
||||
|
||||
private val TAG = LoginPresenter::class.java.simpleName
|
||||
|
||||
private var phone:String?=null
|
||||
private var code:String?=null
|
||||
private val TAG = M_OCHCOMMON+LoginPresenter::class.java.simpleName
|
||||
|
||||
init {
|
||||
initListeners()
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "网约车-Init")
|
||||
CallerLogger.d(TAG, "网约车-Init")
|
||||
}
|
||||
|
||||
private fun initListeners() {
|
||||
LoginModel.init(AbsMogoApplication.getApp())
|
||||
LoginModel.setiTaxiLoginCallback(this)
|
||||
LoginStatusManager.addListener(TAG,this)
|
||||
}
|
||||
|
||||
override fun onProductChange(businessEnum: Product?) {
|
||||
mView?.setBg()
|
||||
}
|
||||
|
||||
override fun onVehicleChage(vehicle: Vehicle?) {
|
||||
mView?.setBg()
|
||||
}
|
||||
|
||||
fun getPhoneCode(phone:String){
|
||||
OchChainLogManager.writeChainLog("登录页面","获取验证码${phone}")
|
||||
@@ -65,7 +74,7 @@ class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), IT
|
||||
|
||||
override fun onCreate(owner: LifecycleOwner) {
|
||||
super.onCreate(owner)
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "网约车-出租车登陆")
|
||||
CallerLogger.d(TAG, "网约车-出租车登陆")
|
||||
}
|
||||
|
||||
|
||||
@@ -88,13 +97,13 @@ class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), IT
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe({
|
||||
mView?.setCountDownText("${it}s",false)
|
||||
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时:$it")
|
||||
CallerLogger.d(TAG, "倒计时:$it")
|
||||
}, {
|
||||
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onError:${it}")
|
||||
CallerLogger.d(TAG, "倒计时onError:${it}")
|
||||
it.printStackTrace()
|
||||
mView?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true)
|
||||
}, {
|
||||
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onComplete")
|
||||
CallerLogger.d(TAG, "倒计时onComplete")
|
||||
mView?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true)
|
||||
})
|
||||
}
|
||||
@@ -116,25 +125,8 @@ class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), IT
|
||||
gotoOfflineMode()
|
||||
return
|
||||
}
|
||||
// 需要实时查询新的
|
||||
LoginModel.queryCarStatus(false)
|
||||
LoginModel.gotoLogin(phone, code)
|
||||
mView?.closeSoftInput()
|
||||
this.phone = phone
|
||||
this.code = code
|
||||
}
|
||||
|
||||
override fun searchStatusSuccess() {
|
||||
if (StringUtils.isEmpty(phone) || StringUtils.isEmpty(code)) {
|
||||
return
|
||||
}
|
||||
if(!LoginStatusManager.checkBusiness(LoginStatusManager.getBusInessType().code)){
|
||||
return
|
||||
}
|
||||
if(!StringUtils.isEmpty(phone)&&!StringUtils.isEmpty(code)) {
|
||||
LoginModel.gotoLogin(phone!!, code!!)
|
||||
}
|
||||
this.phone = null
|
||||
this.code = null
|
||||
}
|
||||
|
||||
override fun netErrorCallback() {
|
||||
|
||||
@@ -257,11 +257,7 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
// 司机屏不用处理 只处理 后台返回的业务模型就行
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
biz_cl_driver_main?.viewTreeObserver?.addOnGlobalLayoutListener(onlayoutListener)
|
||||
super.onResume()
|
||||
CallerIpcConnectStateToastManager.loginFragment(true)
|
||||
CallerLogger.d(TAG, "onResume")
|
||||
fun setBg(){
|
||||
context?.let {
|
||||
val videoUrl:String
|
||||
if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
|
||||
@@ -347,6 +343,14 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
biz_cl_driver_main?.viewTreeObserver?.addOnGlobalLayoutListener(onlayoutListener)
|
||||
super.onResume()
|
||||
CallerIpcConnectStateToastManager.loginFragment(true)
|
||||
CallerLogger.d(TAG, "onResume")
|
||||
setBg()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
biz_cl_driver_main?.viewTreeObserver?.removeOnGlobalLayoutListener(onlayoutListener)
|
||||
super.onPause()
|
||||
|
||||
@@ -1,26 +1,29 @@
|
||||
package com.mogo.och.biz.login.ui
|
||||
|
||||
import android.content.res.Configuration
|
||||
import android.util.TypedValue
|
||||
import android.view.View
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.commons.mvp.MvpFragment
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.DeviceUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ScreenUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.biz.BuildConfig
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.login.callback.ILoginViewCallback
|
||||
import com.mogo.och.biz.login.presenter.LoginPassengerPresenter
|
||||
import com.mogo.och.biz.login.ui.debugview.BusinessView
|
||||
import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket
|
||||
import com.mogo.och.common.module.utils.FlavorUtils
|
||||
import kotlinx.android.synthetic.main.biz_login_passenger_view.actv_app_version
|
||||
import kotlinx.android.synthetic.main.biz_login_passenger_view.actv_connect_status
|
||||
import kotlinx.android.synthetic.main.biz_login_passenger_view.biz_cl_passenger_main
|
||||
import kotlinx.android.synthetic.main.biz_login_view.bv_switch_business
|
||||
import kotlinx.android.synthetic.main.biz_login_view.eiv_Info
|
||||
import me.jessyan.autosize.AutoSizeCompat
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
import kotlin.math.abs
|
||||
|
||||
|
||||
/**
|
||||
@@ -29,36 +32,53 @@ import kotlinx.android.synthetic.main.biz_login_view.eiv_Info
|
||||
*/
|
||||
class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPassengerPresenter?>(),
|
||||
ILoginViewCallback {
|
||||
|
||||
private var biz_cl_passenger_main: ConstraintLayout?=null
|
||||
private var biz_actv_login_show_sn: AppCompatTextView?=null
|
||||
private var bv_switch_business: BusinessView?=null
|
||||
private var actv_app_version: AppCompatTextView?=null
|
||||
private var actv_connect_status: AppCompatTextView?=null
|
||||
|
||||
|
||||
private val statusList = mutableListOf<String>()
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.biz_login_passenger_view
|
||||
}
|
||||
|
||||
if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) &&
|
||||
AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode))) {
|
||||
return R.layout.biz_login_passenger_view_1920x1080
|
||||
} else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) &&
|
||||
AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode))) {
|
||||
return R.layout.biz_login_passenger_view_1080x1920
|
||||
private val width2560 = 2560
|
||||
private val width1920 = 1920
|
||||
|
||||
private fun changeUi(){
|
||||
val screenWidth = ScreenUtils.getScreenWidth()
|
||||
val screenHeight = ScreenUtils.getScreenHeight()
|
||||
|
||||
val textSize: Float
|
||||
val marginBottom: Int
|
||||
|
||||
if(screenWidth>screenHeight){//横屏
|
||||
if(abs(screenWidth - width2560)<abs(screenWidth-width1920)){
|
||||
// 使用2560的横屏配置
|
||||
biz_cl_passenger_main?.setBackgroundResource(R.drawable.biz_login_passenger_2560x1600)
|
||||
textSize = AutoSizeUtils.dp2px(context, 30f).toFloat()
|
||||
marginBottom = AutoSizeUtils.dp2px(context, 70f)
|
||||
CallerLogger.d(TAG,"width:${screenWidth}----height:${screenHeight}----001")
|
||||
}else{
|
||||
// 使用1920的横屏效果
|
||||
biz_cl_passenger_main?.setBackgroundResource(R.drawable.biz_login_passenger_1920x1080)
|
||||
textSize = AutoSizeUtils.dp2px(context, 28f).toFloat()
|
||||
marginBottom = AutoSizeUtils.dp2px(context, 41f)
|
||||
CallerLogger.d(TAG,"width:${screenWidth}----height:${screenHeight}----002")
|
||||
}
|
||||
}else{// 竖屏 使用1080 的横屏效果
|
||||
biz_cl_passenger_main?.setBackgroundResource(R.drawable.biz_login_passenger_1080x1920)
|
||||
textSize = AutoSizeUtils.dp2px(context, 28f).toFloat()
|
||||
marginBottom = AutoSizeUtils.dp2px(context, 41f)
|
||||
CallerLogger.d(TAG,"width:${screenWidth}----height:${screenHeight}----003")
|
||||
}
|
||||
|
||||
return R.layout.biz_login_passenger_view_2560x1600
|
||||
actv_connect_status?.setTextSize(TypedValue.COMPLEX_UNIT_PX,textSize)
|
||||
actv_app_version?.setTextSize(TypedValue.COMPLEX_UNIT_PX,textSize)
|
||||
val layoutParams = actv_app_version.layoutParams as ConstraintLayout.LayoutParams
|
||||
layoutParams.bottomMargin = marginBottom
|
||||
actv_app_version.layoutParams = layoutParams
|
||||
}
|
||||
|
||||
override fun initViews() {
|
||||
|
||||
biz_cl_passenger_main = findViewById(R.id.biz_cl_passenger_main)
|
||||
biz_actv_login_show_sn= findViewById(R.id.biz_actv_login_show_sn)
|
||||
bv_switch_business= findViewById(R.id.bv_switch_business)
|
||||
actv_app_version= findViewById(R.id.actv_app_version)
|
||||
actv_connect_status= findViewById(R.id.actv_connect_status)
|
||||
|
||||
CallerLogger.d(TAG, "init")
|
||||
actv_app_version?.text = FlavorUtils.getInfo()
|
||||
|
||||
if(BuildConfig.DEBUG) {
|
||||
@@ -74,8 +94,7 @@ class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPasseng
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
CallerLogger.d(TAG, "init")
|
||||
changeUi()
|
||||
}
|
||||
|
||||
override fun createPresenter(): LoginPassengerPresenter {
|
||||
@@ -87,14 +106,9 @@ class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPasseng
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
val TAG = LoginPassengerFragment::class.java.simpleName
|
||||
}
|
||||
|
||||
override fun showErrorInfo(errorInfo: String) {
|
||||
|
||||
}
|
||||
|
||||
override fun checkAllEnv(
|
||||
reason:String
|
||||
) {
|
||||
@@ -103,7 +117,7 @@ class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPasseng
|
||||
}
|
||||
|
||||
override fun updateStatus(status: String) {
|
||||
statusList?.add(status)
|
||||
statusList.add(status)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
@@ -134,5 +148,7 @@ class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPasseng
|
||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||
super.onConfigurationChanged(newConfig)
|
||||
CallerLogger.d(TAG, newConfig)
|
||||
AutoSizeCompat.autoConvertDensityOfGlobal(resources)
|
||||
changeUi()
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,10 @@ import android.view.LayoutInflater
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_bus
|
||||
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_charter
|
||||
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_shuttle
|
||||
@@ -63,8 +61,7 @@ class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback
|
||||
}
|
||||
|
||||
private fun swtichBusiness(businessEnum: Product) {
|
||||
LoginStatusManager.invokeLBusinessTypeChangeDebug(businessEnum)
|
||||
visibility = GONE
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -78,31 +75,10 @@ class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback
|
||||
}
|
||||
|
||||
fun selectBusniess() {
|
||||
visibility = VISIBLE
|
||||
actv_business_shuttle.visibility = GONE
|
||||
actv_business_bus.visibility = GONE
|
||||
actv_business_taxi.visibility = GONE
|
||||
actv_business_charter.visibility = GONE
|
||||
FunctionBuildConfig.supportBusiness.forEach {
|
||||
when (it) {
|
||||
"shuttle" -> {
|
||||
actv_business_shuttle.visibility = VISIBLE
|
||||
}
|
||||
|
||||
"bus" -> {
|
||||
actv_business_bus.visibility = VISIBLE
|
||||
}
|
||||
|
||||
"taxi" -> {
|
||||
actv_business_taxi.visibility = VISIBLE
|
||||
}
|
||||
|
||||
"charter" -> {
|
||||
actv_business_charter.visibility = VISIBLE
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
if(visibility== VISIBLE){
|
||||
visibility = GONE
|
||||
}else {
|
||||
visibility = VISIBLE
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,9 +4,12 @@ import android.content.Context
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.skin.bean.SkinRespBean
|
||||
import com.mogo.och.biz.skin.net.OchSkinServiceManager
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.skin.SkinService
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
@@ -17,11 +20,21 @@ import com.mogo.skin.SkinManager
|
||||
import com.mogo.skin.utils.FileUtils
|
||||
|
||||
@Route(path = OchCommonConst.BIZ_SKIN)
|
||||
class SkinProvider : SkinService {
|
||||
class SkinProvider : SkinService, ILoginCallback {
|
||||
|
||||
private var context: Context?= null
|
||||
|
||||
private val TAG = "SkinProvider"
|
||||
private val TAG = M_OCHCOMMON+"SkinProvider"
|
||||
|
||||
init {
|
||||
d(TAG,"皮肤信息_监听租户")
|
||||
LoginStatusManager.addListener(TAG,this)
|
||||
}
|
||||
|
||||
override fun onTenantIdChange(tenantId: Long?) {
|
||||
d(TAG,"皮肤信息_租户变化重新请求皮肤包")
|
||||
loadNewSkin()
|
||||
}
|
||||
|
||||
override fun loadNewSkin() {
|
||||
OchChainLogManager.writeChainLogSkin("皮肤信息","请求皮肤信息")
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mogo.och.biz.skin.bean
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.login.LoginInfo
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
|
||||
@@ -126,7 +126,7 @@ class TimeProvider : TimeService {
|
||||
}
|
||||
|
||||
fun tryload(){
|
||||
if (netTime > 3_000 || FunctionBuildConfig.isOffLine) {
|
||||
if (netTime > 3_000) {
|
||||
// 网络延迟大 10s 同步一次
|
||||
RxUtils.disposeSubscribe(nextGetTime)
|
||||
nextGetTime = RxUtils.createSubscribeOnOwnThread(30_000) {
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
android:id="@+id/biz_cl_passenger_main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/biz_login_passenger_2560x1600"
|
||||
app:isUseSkin="true">
|
||||
|
||||
|
||||
@@ -13,12 +12,12 @@
|
||||
android:id="@+id/actv_connect_status"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="当前状态:连接司机屏中"
|
||||
android:textColor="@color/white"
|
||||
android:gravity="center"
|
||||
android:textSize="@dimen/dp_30"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:gravity="center"
|
||||
android:text="当前状态:连接司机屏中"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toTopOf="@+id/actv_app_version"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
@@ -28,10 +27,10 @@
|
||||
android:id="@+id/actv_app_version"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:layout_marginBottom="@dimen/dp_70"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:layout_marginBottom="@dimen/dp_70"
|
||||
android:gravity="center"
|
||||
android:text="版本号:6.4.0"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
@@ -1,73 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/biz_cl_passenger_main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/biz_login_passenger_1080x1920"
|
||||
app:isUseSkin="true">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_connect_status"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="当前状态:连接司机屏中"
|
||||
android:textColor="@color/white"
|
||||
android:gravity="center"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toTopOf="@+id/actv_app_version"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_app_version"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/dp_41"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:gravity="center"
|
||||
android:text="版本号:6.4.0"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<com.mogo.och.biz.login.ui.errorview.ErrorInfoView
|
||||
android:id="@+id/eiv_Info"
|
||||
android:layout_width="@dimen/dp_751"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
|
||||
<com.mogo.och.biz.login.ui.debugview.BusinessView
|
||||
android:id="@+id/bv_switch_business"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/biz_actv_login_show_sn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_50"
|
||||
android:layout_marginBottom="@dimen/dp_40"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,76 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/biz_cl_passenger_main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/biz_login_passenger_1920x1080"
|
||||
app:isUseSkin="true">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_connect_status"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@+id/actv_app_version"
|
||||
android:text="当前状态:连接司机屏中"
|
||||
android:textColor="@color/white"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:gravity="center"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_app_version"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/dp_41"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:text="版本号:6.4.0"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_28"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
/>
|
||||
|
||||
<com.mogo.och.biz.login.ui.errorview.ErrorInfoView
|
||||
android:id="@+id/eiv_Info"
|
||||
android:layout_width="@dimen/dp_939"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
|
||||
<com.mogo.och.biz.login.ui.debugview.BusinessView
|
||||
android:id="@+id/bv_switch_business"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/biz_actv_login_show_sn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_50"
|
||||
android:layout_marginBottom="@dimen/dp_40"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -29,38 +29,37 @@ object CheckVinManager : IMoGoAutopilotCarConfigListener {
|
||||
fun getVin(): String {
|
||||
var delineVin = CallerAutoPilotControlManager.getVIN()
|
||||
if(delineVin.isEmpty()){
|
||||
delineVin = LoginStatusManager.getLoginInfo()?.vin?:""
|
||||
delineVin = LoginStatusManager.getOchCarInfo()?.vin?:""
|
||||
}
|
||||
return delineVin
|
||||
}
|
||||
|
||||
private fun checkVin() {
|
||||
LoginStatusManager.getLoginInfo()?.let {loginInfo ->
|
||||
val serverVin = loginInfo.vin
|
||||
LoginStatusManager.getOchCarInfo()?.vin?.let { serverVin ->
|
||||
val delineVin = CallerAutoPilotControlManager.getVIN()
|
||||
OchChainLogManager.writeChainLog(
|
||||
"checkVin",
|
||||
"5分钟检测VIN:服务器Vin:${serverVin}-----底盘Vin:${delineVin}", true,
|
||||
CheckVinErrorDialog.EVENT_KEY_INFO_CHECK_VIN
|
||||
)
|
||||
if(serverVin.isNullOrBlank()){
|
||||
if (serverVin.isNullOrBlank()) {
|
||||
return
|
||||
}
|
||||
|
||||
if(delineVin.isNullOrBlank()){
|
||||
if (delineVin.isNullOrBlank()) {
|
||||
return
|
||||
}
|
||||
|
||||
if(serverVin!=delineVin){
|
||||
if (serverVin != delineVin) {
|
||||
val topActivity = ActivityUtils.getTopActivity()
|
||||
topActivity?.let {
|
||||
UiThreadHandler.post({
|
||||
if(checkVinErrorDialog !=null&& checkVinErrorDialog!!.isShowing){
|
||||
if (checkVinErrorDialog != null && checkVinErrorDialog!!.isShowing) {
|
||||
return@post
|
||||
}
|
||||
checkVinErrorDialog = CheckVinErrorDialog(it)
|
||||
checkVinErrorDialog?.showDialog()
|
||||
},UiThreadHandler.MODE.QUEUE)
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package com.mogo.och.common.module.biz.lansocket
|
||||
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import android.util.Log
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.och.common.module.BuildConfig
|
||||
import com.mogo.och.common.module.biz.lansocket.bean.DevicesInfo
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
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
|
||||
@@ -15,10 +18,14 @@ import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ScreenType
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.FlavorUtils
|
||||
|
||||
object LoginLanDriverSocket : ILoginCallback {
|
||||
private const val TAG = "LoginLanSocket"
|
||||
private const val TAG = M_OCHCOMMON+"LoginLanSocket"
|
||||
|
||||
private val thridDevices = mutableListOf<DevicesInfo>()
|
||||
|
||||
// 接受到客户端注册信息后立即返回业务模式
|
||||
private val registerListener = object : ILanMessageListener<BaseDPMsg> {
|
||||
@@ -28,6 +35,15 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
|
||||
override fun onLanMsgReceived(obj: BaseDPMsg?) {
|
||||
println("-------${obj}")
|
||||
obj?.let {msg->
|
||||
var currentDevices = thridDevices.find { it.sn == msg.sourceSn && it.msgVersion == msg.msgVersion }
|
||||
if(currentDevices==null){
|
||||
currentDevices = DevicesInfo(msg.sourceScreenType, msg.sourceSn,msg.msgVersion)
|
||||
thridDevices.add(currentDevices)
|
||||
}else{
|
||||
currentDevices.registerTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
}
|
||||
}
|
||||
if(LoginStatusManager.isLogin()) {
|
||||
FlavorUtils.getEnvCheck()
|
||||
val msg = ChangeBusinessType(FlavorUtils.vehicleType!!, FlavorUtils.businessType!!, FlavorUtils.projectType!!, FlavorUtils.envType!!)
|
||||
@@ -37,9 +53,10 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
val msg = ChangeBusinessType(FlavorUtils.vehicleType!!, BusinessType.none, FlavorUtils.projectType!!, FlavorUtils.envType!!)
|
||||
LanSocketManager.sendMsgToClient(msg)
|
||||
}
|
||||
LoginStatusManager.sendLogin2Client()
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
fun load() {
|
||||
OchChainLogManager.writeChainLogInit("初始化信息","初始司机屏局域网内通知监听")
|
||||
@@ -47,6 +64,7 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
|
||||
init {
|
||||
// 登录状态变化的监听
|
||||
CallerLogger.d(TAG,"初始化局域网通信")
|
||||
LoginStatusManager.addListener(TAG, this)
|
||||
// 注册监听乘客屏和报站屏注册信息
|
||||
LanSocketManager.registerSocketMessageListener(
|
||||
@@ -56,11 +74,11 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
}
|
||||
|
||||
// 司机端发送业务模式更改和环境校验
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum?) {
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus?) {
|
||||
FlavorUtils.getEnvCheck()
|
||||
if (FlavorUtils.vehicleType != null && FlavorUtils.projectType != null && FlavorUtils.envType != null) {
|
||||
when (currentStatus) {
|
||||
LoginStatusEnum.Login -> {
|
||||
EnumLoginStatus.Login -> {
|
||||
val msg =
|
||||
ChangeBusinessType(
|
||||
FlavorUtils.vehicleType!!,
|
||||
|
||||
@@ -3,11 +3,8 @@ package com.mogo.och.common.module.biz.lansocket
|
||||
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
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
|
||||
@@ -15,16 +12,11 @@ import com.mogo.och.common.module.manager.loop.LoopInfo
|
||||
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ScreenType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
import com.mogo.och.common.module.utils.CallerBase
|
||||
import java.lang.StringBuilder
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
object LoginLanPassengerSocket : IReceivedMsgListener, CallerBase<IOchLanPassengerStatusListener>() {
|
||||
@@ -83,73 +75,12 @@ object LoginLanPassengerSocket : IReceivedMsgListener, CallerBase<IOchLanPasseng
|
||||
|
||||
override fun onLanMsgReceived(first: EnvCheck?) {
|
||||
first?.let {
|
||||
val checkEnv = checkEnv(first.projectType, first.envType, first.vehicleType, first.businessType)
|
||||
if (first.sourceScreenType== ScreenType.Driver) {
|
||||
driverSn = first.sourceSn
|
||||
}
|
||||
if(checkEnv){
|
||||
|
||||
}else{
|
||||
CallerLogger.d(TAG, "乘客屏 收到消息 检测环境不支持:${LoginStatusEnum.Logout}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun checkEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
): Boolean {
|
||||
return LoginStatusManager.checkAllEnv(projectType, envType, vehicleType, businessType)
|
||||
}
|
||||
|
||||
// 环境监测+业务展示和跳转
|
||||
private val changeBusinessType = object : ILanMessageListener<ChangeBusinessType> {
|
||||
override fun targetLan(): Class<ChangeBusinessType> {
|
||||
return ChangeBusinessType::class.java
|
||||
}
|
||||
|
||||
override fun onLanMsgReceived(first: ChangeBusinessType?) {
|
||||
first?.let {
|
||||
val checkEnv = checkEnv(
|
||||
first.projectType,
|
||||
first.envType,
|
||||
first.vehicleType,
|
||||
first.businessType
|
||||
)
|
||||
if(checkEnv){
|
||||
val status = StringBuilder()
|
||||
status.append("切换业务模式<当前:${LoginStatusManager.getBusInessType().name}")
|
||||
when (first.businessType) {
|
||||
BusinessType.none -> {
|
||||
LoginStatusManager.setBusinessType(Product.NONE.code)
|
||||
CallerLogger.d(TAG, "乘客屏 收到消息 司机屏没有登录:${LoginStatusEnum.Logout}")
|
||||
return LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
|
||||
}
|
||||
BusinessType.bus -> LoginStatusManager.setBusinessType(Product.BUS.code)
|
||||
BusinessType.shuttle -> LoginStatusManager.setBusinessType(Product.SHUTTLE.code)
|
||||
BusinessType.charter -> LoginStatusManager.setBusinessType(Product.CHARTER.code)
|
||||
BusinessType.taxi -> LoginStatusManager.setBusinessType(Product.TAXI.code)
|
||||
BusinessType.taxiunmanned ->LoginStatusManager.setBusinessType(Product.TAXI.code)
|
||||
BusinessType.scheduled ->LoginStatusManager.setBusinessType(Product.SCHEDULED.code)
|
||||
}
|
||||
status.append(", 切换后:${LoginStatusManager.getBusInessType().name}>")
|
||||
LoginStatusManager.changeStatus(status.toString())
|
||||
UiThreadHandler.postDelayed({
|
||||
CallerLogger.d(TAG, "乘客屏 收到消息 司机屏业务模式相同:${LoginStatusEnum.Login}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Login)
|
||||
},2000)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
fun load() {
|
||||
OchChainLogManager.writeChainLogInit("初始化信息","初始局乘客屏局域网内部分信息")
|
||||
}
|
||||
@@ -164,11 +95,7 @@ object LoginLanPassengerSocket : IReceivedMsgListener, CallerBase<IOchLanPasseng
|
||||
DPMsgType.TYPE_ENV_CHECK.type,
|
||||
checkListener
|
||||
)
|
||||
// 乘客屏监听司机端发送的业务修改通知(
|
||||
LanSocketManager.registerSocketMessageListener(
|
||||
DPMsgType.TYPE_CHANGE_BUSINESS_TYPE.type,
|
||||
changeBusinessType
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.mogo.och.common.module.biz.lansocket.bean
|
||||
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ScreenType
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
|
||||
data class DevicesInfo(
|
||||
val screenType: ScreenType,// 屏幕类型
|
||||
val sn: String,// 屏幕sn
|
||||
val msgVersion:Int,
|
||||
var registerTime: Long = DateTimeUtil.getCurrentTimeStamp(),//注册时间
|
||||
){
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (javaClass != other?.javaClass) return false
|
||||
|
||||
other as DevicesInfo
|
||||
|
||||
if (sn != other.sn) return false
|
||||
if (msgVersion != other.msgVersion) return false
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
var result = sn.hashCode()
|
||||
result = 31 * result + msgVersion
|
||||
return result
|
||||
}
|
||||
}
|
||||
@@ -8,14 +8,14 @@ package com.mogo.och.common.module.biz.login
|
||||
* 10 已登录,
|
||||
* 20 已登出,
|
||||
*/
|
||||
enum class LoginStatusEnum(val code: Int) {
|
||||
enum class EnumLoginStatus(val code: Int) {
|
||||
None( -1 ),
|
||||
Login( 1),
|
||||
Logout( 0),;
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun valueOf(code: Int): LoginStatusEnum? {
|
||||
fun valueOf(code: Int): EnumLoginStatus {
|
||||
for (value in values()) {
|
||||
if (value.code == code) {
|
||||
return value
|
||||
@@ -8,14 +8,14 @@ package com.mogo.och.common.module.biz.login
|
||||
* 10 接单状态 可接单,
|
||||
* 20 暂停接到哪 不可接单,
|
||||
*/
|
||||
enum class OpenOrderStatusEnum(val code: Int) {
|
||||
enum class EnumOpenOrderStatus(val code: Int) {
|
||||
UnOrdering( 0 ),
|
||||
Ordering( 1),
|
||||
None( -1),;
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun valueOf(code: Int): OpenOrderStatusEnum {
|
||||
fun valueOf(code: Int): EnumOpenOrderStatus {
|
||||
for (value in values()) {
|
||||
if (value.code == code) {
|
||||
return value
|
||||
@@ -4,7 +4,7 @@ package com.mogo.och.common.module.biz.login
|
||||
* Created on 2021/12/7
|
||||
* 1 运营, 2 测试, 3演示
|
||||
*/
|
||||
enum class RoleEnum(val code: Int) {
|
||||
enum class EnumRole(val code: Int) {
|
||||
None( 0),
|
||||
OPERATION( 1),
|
||||
TEST( 2),
|
||||
@@ -13,13 +13,13 @@ enum class RoleEnum(val code: Int) {
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun valueOf(code: Int?): RoleEnum {
|
||||
for (value in RoleEnum.values()) {
|
||||
fun valueOf(code: Int?): EnumRole {
|
||||
for (value in EnumRole.values()) {
|
||||
if (value.code == code) {
|
||||
return value
|
||||
}
|
||||
}
|
||||
return RoleEnum.None
|
||||
return EnumRole.None
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,18 +2,21 @@ package com.mogo.och.common.module.biz.login;
|
||||
|
||||
import com.mogo.eagle.core.data.enums.Carmodel;
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product;
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle;
|
||||
|
||||
public interface ILoginCallback {
|
||||
|
||||
default void onStatusChange(LoginStatusEnum currentStatus){}
|
||||
default void onLoginStatusChange(EnumLoginStatus currentStatus){}
|
||||
|
||||
default void onCarModelChange(Carmodel currentStatus){}
|
||||
|
||||
default void onBusinessChange(Product businessEnum){}
|
||||
default void onProductChange(Product businessEnum){}
|
||||
|
||||
default void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum){}
|
||||
default void onVehicleChage(Vehicle vehicle){}
|
||||
|
||||
default void onBusinessChangeDebug(Product businessEnum){}
|
||||
default void onOpenOrderStatusEnumChange(EnumOpenOrderStatus businessEnum){}
|
||||
|
||||
default void onTenantIdChange(Long tenantId){}
|
||||
|
||||
default void onLoginErrorInfo(int code,String msg){}
|
||||
|
||||
|
||||
@@ -1,278 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.login;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class LoginInfo {
|
||||
private int driverStatus; //1登录,0登出
|
||||
private int servingStatus;//1接单中,0暂停接单
|
||||
private int businessType; //9: taxi. 10: bus公交 11:接驳 13:包车
|
||||
private String orderNo;
|
||||
private int purpose; // 1 运营, 2 测试, 3演示
|
||||
private String sn;
|
||||
private String plateNumber;//车牌号
|
||||
private String phone;//手机号
|
||||
private Long lineId;//线路id
|
||||
private Long taskId;//任务id
|
||||
private Long siteId;//站点id 包车使用
|
||||
private Long currentSite;//当前站点 接驳、公交、班车使用
|
||||
private Boolean leaving;// 当前站点是否出发
|
||||
private Long shiftsId;//模板id
|
||||
private Long taskDate;// 任务或模板的日期
|
||||
private String vin;//车辆唯一识别码
|
||||
private String cityCode;//城市编码
|
||||
private String brand;//东风
|
||||
//
|
||||
// E70 东风 H9 红旗
|
||||
// B2 B1 M1
|
||||
private String carModel;
|
||||
private String photos;//车身照片:
|
||||
private long tenantId;//租户id:
|
||||
private long driverId;
|
||||
|
||||
private long businessStatus;//?????
|
||||
|
||||
public int getDriverStatus() {
|
||||
return driverStatus;
|
||||
}
|
||||
|
||||
public void setDriverStatus(int driverStatus) {
|
||||
this.driverStatus = driverStatus;
|
||||
}
|
||||
|
||||
public String getOrderNo() {
|
||||
return orderNo;
|
||||
}
|
||||
|
||||
public void setOrderNo(String orderNo) {
|
||||
this.orderNo = orderNo;
|
||||
}
|
||||
|
||||
public int getPurpose() {
|
||||
return purpose;
|
||||
}
|
||||
|
||||
public void setPurpose(int purpose) {
|
||||
this.purpose = purpose;
|
||||
}
|
||||
|
||||
public String getSn() {
|
||||
return sn;
|
||||
}
|
||||
|
||||
public void setSn(String sn) {
|
||||
this.sn = sn;
|
||||
}
|
||||
|
||||
public String getPlateNumber() {
|
||||
return plateNumber;
|
||||
}
|
||||
|
||||
public void setPlateNumber(String plateNumber) {
|
||||
this.plateNumber = plateNumber;
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
|
||||
public int getServingStatus() {
|
||||
return servingStatus;
|
||||
}
|
||||
|
||||
public void setServingStatus(int servingStatus) {
|
||||
this.servingStatus = servingStatus;
|
||||
}
|
||||
|
||||
public int getBusinessType() {
|
||||
return businessType;
|
||||
}
|
||||
|
||||
public void setBusinessType(int businessType) {
|
||||
this.businessType = businessType;
|
||||
}
|
||||
|
||||
public String getVin() {
|
||||
return vin;
|
||||
}
|
||||
|
||||
public void setVin(String vin) {
|
||||
this.vin = vin;
|
||||
}
|
||||
|
||||
public String getCityCode() {
|
||||
return cityCode;
|
||||
}
|
||||
|
||||
public void setCityCode(String cityCode) {
|
||||
this.cityCode = cityCode;
|
||||
}
|
||||
|
||||
public String getBrand() {
|
||||
return brand;
|
||||
}
|
||||
|
||||
public void setBrand(String brand) {
|
||||
this.brand = brand;
|
||||
}
|
||||
|
||||
public String getCarModel() {
|
||||
return carModel;
|
||||
}
|
||||
|
||||
public void setCarModel(String carModel) {
|
||||
this.carModel = carModel;
|
||||
}
|
||||
|
||||
public String getPhotos() {
|
||||
return photos;
|
||||
}
|
||||
|
||||
public void setPhotos(String photos) {
|
||||
this.photos = photos;
|
||||
}
|
||||
|
||||
public long getTenantId() {
|
||||
return tenantId;
|
||||
}
|
||||
|
||||
public void setTenantId(long tenantId) {
|
||||
this.tenantId = tenantId;
|
||||
}
|
||||
|
||||
public long getDriverId() {
|
||||
return driverId;
|
||||
}
|
||||
|
||||
public void setDriverId(long driverId) {
|
||||
this.driverId = driverId;
|
||||
}
|
||||
|
||||
|
||||
public long getBusinessStatus() {
|
||||
return businessStatus;
|
||||
}
|
||||
|
||||
public void setBusinessStatus(long businessStatus) {
|
||||
this.businessStatus = businessStatus;
|
||||
}
|
||||
|
||||
public Long getCurrentSite() {
|
||||
return currentSite;
|
||||
}
|
||||
|
||||
public void setCurrentSite(Long currentSite) {
|
||||
this.currentSite = currentSite;
|
||||
}
|
||||
|
||||
public Boolean getLeaving() {
|
||||
return leaving;
|
||||
}
|
||||
|
||||
public void setLeaving(Boolean leaving) {
|
||||
this.leaving = leaving;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Long getTaskDate() {
|
||||
return taskDate;
|
||||
}
|
||||
|
||||
public void setTaskDate(Long taskDate) {
|
||||
this.taskDate = taskDate;
|
||||
}
|
||||
|
||||
public Long getLineId() {
|
||||
return lineId;
|
||||
}
|
||||
|
||||
public void setLineId(Long lineId) {
|
||||
this.lineId = lineId;
|
||||
}
|
||||
|
||||
public Long getTaskId() {
|
||||
return taskId;
|
||||
}
|
||||
|
||||
public void setTaskId(Long taskId) {
|
||||
this.taskId = taskId;
|
||||
}
|
||||
|
||||
public Long getSiteId() {
|
||||
return siteId;
|
||||
}
|
||||
|
||||
public void setSiteId(Long siteId) {
|
||||
this.siteId = siteId;
|
||||
}
|
||||
|
||||
public Long getShiftsId() {
|
||||
return shiftsId;
|
||||
}
|
||||
|
||||
public void setShiftsId(Long shiftsId) {
|
||||
this.shiftsId = shiftsId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LoginInfo{" +
|
||||
"driverStatus=" + driverStatus +
|
||||
", servingStatus=" + servingStatus +
|
||||
", businessType=" + businessType +
|
||||
", orderNo='" + orderNo + '\'' +
|
||||
", purpose=" + purpose +
|
||||
", sn='" + sn + '\'' +
|
||||
", plateNumber='" + plateNumber + '\'' +
|
||||
", phone='" + phone + '\'' +
|
||||
", lineId=" + lineId +
|
||||
", taskId=" + taskId +
|
||||
", siteId=" + siteId +
|
||||
", vin='" + vin + '\'' +
|
||||
", cityCode='" + cityCode + '\'' +
|
||||
", brand='" + brand + '\'' +
|
||||
", carModel='" + carModel + '\'' +
|
||||
", photos='" + photos + '\'' +
|
||||
", tenantId=" + tenantId +
|
||||
", driverId=" + driverId +
|
||||
", businessStatus=" + businessStatus +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
LoginInfo loginInfo = (LoginInfo) o;
|
||||
return driverStatus == loginInfo.driverStatus && servingStatus == loginInfo.servingStatus && businessType == loginInfo.businessType && purpose == loginInfo.purpose && tenantId == loginInfo.tenantId && driverId == loginInfo.driverId && businessStatus == loginInfo.businessStatus && Objects.equals(orderNo, loginInfo.orderNo) && Objects.equals(sn, loginInfo.sn) && Objects.equals(plateNumber, loginInfo.plateNumber) && Objects.equals(phone, loginInfo.phone) && Objects.equals(lineId, loginInfo.lineId) && Objects.equals(taskId, loginInfo.taskId) && Objects.equals(siteId, loginInfo.siteId) && Objects.equals(vin, loginInfo.vin) && Objects.equals(cityCode, loginInfo.cityCode) && Objects.equals(brand, loginInfo.brand) && Objects.equals(carModel, loginInfo.carModel) && Objects.equals(photos, loginInfo.photos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = driverStatus;
|
||||
result = 31 * result + servingStatus;
|
||||
result = 31 * result + businessType;
|
||||
result = 31 * result + Objects.hashCode(orderNo);
|
||||
result = 31 * result + purpose;
|
||||
result = 31 * result + Objects.hashCode(sn);
|
||||
result = 31 * result + Objects.hashCode(plateNumber);
|
||||
result = 31 * result + Objects.hashCode(phone);
|
||||
result = 31 * result + Objects.hashCode(lineId);
|
||||
result = 31 * result + Objects.hashCode(taskId);
|
||||
result = 31 * result + Objects.hashCode(siteId);
|
||||
result = 31 * result + Objects.hashCode(vin);
|
||||
result = 31 * result + Objects.hashCode(cityCode);
|
||||
result = 31 * result + Objects.hashCode(brand);
|
||||
result = 31 * result + Objects.hashCode(carModel);
|
||||
result = 31 * result + Objects.hashCode(photos);
|
||||
result = 31 * result + Long.hashCode(tenantId);
|
||||
result = 31 * result + Long.hashCode(driverId);
|
||||
result = 31 * result + Long.hashCode(businessStatus);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -2,49 +2,76 @@ package com.mogo.och.common.module.biz.login
|
||||
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import com.mogo.och.common.module.biz.provider.CommonService
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
|
||||
interface LoginService :CommonService {
|
||||
fun setLoginInfo(loginInfo: LoginInfo)
|
||||
fun getLoginInfo():LoginInfo?
|
||||
|
||||
fun getPurpose():RoleEnum
|
||||
/**
|
||||
* 获取登录新形象
|
||||
*/
|
||||
fun getOchLoginInfo():OchLoginInfo?
|
||||
|
||||
/**
|
||||
* 获取业务信息
|
||||
*/
|
||||
fun getOchBizInfo():OchBizInfo?
|
||||
|
||||
/**
|
||||
* 获取车辆信息
|
||||
*/
|
||||
fun getOchCarInfo():OchCarInfo?
|
||||
|
||||
/**
|
||||
* 设置角色
|
||||
*/
|
||||
fun getPurpose():EnumRole
|
||||
|
||||
/**
|
||||
* 判断是否登录
|
||||
*/
|
||||
fun isLogin():Boolean
|
||||
fun getLoginStatus(): LoginStatusEnum
|
||||
fun getCarModel(): Carmodel
|
||||
fun setLoginStatus(loginStatus: LoginStatusEnum)
|
||||
fun setLoginStatus(status: Int)
|
||||
fun setBusinessType(type: Int)
|
||||
|
||||
fun getBusinessType(): Product
|
||||
/**
|
||||
* 获取登录状态
|
||||
*/
|
||||
fun getLoginStatus(): EnumLoginStatus
|
||||
|
||||
/**
|
||||
* 获取车辆模型
|
||||
*/
|
||||
fun getCarModelType(): Carmodel
|
||||
|
||||
/**
|
||||
* 获取业务模式
|
||||
*/
|
||||
fun getProductType(): Product
|
||||
|
||||
/**
|
||||
* 通过网络获取登录状态
|
||||
* @param readCatche true:先使用缓存同时网络请求也存在 false:只是用缓存
|
||||
*/
|
||||
fun queryLoginStatusByNet(readCatche:Boolean=false)
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
fun loginOut()
|
||||
fun checkBusiness(businessType: Int): Boolean
|
||||
fun checkAllEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
): Boolean
|
||||
|
||||
fun changeStatus(currentStatus: String)
|
||||
|
||||
fun setOpenOrderStatusType(type: Int)
|
||||
|
||||
fun getOpenOrderStatusType(): OpenOrderStatusEnum
|
||||
fun getOpenOrderStatusType(): EnumOpenOrderStatus
|
||||
|
||||
fun isOpenOrderType(): Boolean
|
||||
|
||||
fun removeLoginInfo()
|
||||
|
||||
fun getVehicleType(): Vehicle
|
||||
|
||||
fun sendLogin2Client()
|
||||
}
|
||||
@@ -1,22 +1,18 @@
|
||||
package com.mogo.och.common.module.biz.login
|
||||
|
||||
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.manager.loop.LoopInfo
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
import com.mogo.och.common.module.utils.CallerBase
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
|
||||
object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
|
||||
@@ -24,7 +20,6 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
ARouter.getInstance().build(OchCommonConst.BIZ_LOGIN).navigation() as LoginService
|
||||
|
||||
private var TAG = "LoginStatusManager"
|
||||
private var TAGLoopStatus = "LoginStatusManagerLoop"
|
||||
|
||||
@JvmStatic
|
||||
fun getFragment():Fragment {
|
||||
@@ -33,6 +28,7 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
}
|
||||
throw ClassNotFoundException("没有找到登录Fragment");
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun resetFragment(){
|
||||
loginService?.let {
|
||||
@@ -49,51 +45,57 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
fun queryLoginStatusByNet(readCatche:Boolean=false) {
|
||||
loginService?.queryLoginStatusByNet(readCatche)
|
||||
}
|
||||
@JvmStatic
|
||||
fun getPurpose(): RoleEnum {
|
||||
|
||||
fun getOchCarInfo(): OchCarInfo? {
|
||||
return loginService?.getOchCarInfo()
|
||||
}
|
||||
|
||||
fun getOchBizInfo(): OchBizInfo? {
|
||||
return loginService?.getOchBizInfo()
|
||||
}
|
||||
|
||||
fun getOchLoginInfo(): OchLoginInfo? {
|
||||
return loginService?.getOchLoginInfo()
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除登录信息
|
||||
*/
|
||||
fun removeLoginInfo() {
|
||||
loginService?.removeLoginInfo()
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取业务模式
|
||||
*/
|
||||
fun getProductType():Product{
|
||||
loginService?.let {
|
||||
return it.getPurpose()
|
||||
}
|
||||
return RoleEnum.None
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setLoginInfo(loginInfo: LoginInfo) {
|
||||
loginService?.setLoginInfo(loginInfo)
|
||||
}
|
||||
|
||||
fun getLoginInfo(): LoginInfo? {
|
||||
return loginService?.getLoginInfo()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setLoginStatus(status: Int) {
|
||||
loginService?.setLoginStatus(status)
|
||||
}
|
||||
@JvmStatic
|
||||
fun setBusinessType(type: Int) {
|
||||
loginService?.setBusinessType(type)
|
||||
}
|
||||
|
||||
fun getBusInessType():Product{
|
||||
loginService?.let {
|
||||
return it.getBusinessType()
|
||||
return it.getProductType()
|
||||
}
|
||||
return Product.NONE
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setOpenOrderType(type: Int) {
|
||||
loginService?.setOpenOrderStatusType(type)
|
||||
fun getVehicleType():Vehicle{
|
||||
loginService?.let {
|
||||
return it.getVehicleType()
|
||||
}
|
||||
return Vehicle.NONE
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取接单状态
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getOpenOrderType():OpenOrderStatusEnum{
|
||||
fun getOpenOrderType():EnumOpenOrderStatus{
|
||||
loginService?.let {
|
||||
return it.getOpenOrderStatusType()
|
||||
}
|
||||
return OpenOrderStatusEnum.None
|
||||
return EnumOpenOrderStatus.None
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否在接单中
|
||||
*/
|
||||
@JvmStatic
|
||||
fun isOpenOrderType():Boolean{
|
||||
loginService?.let {
|
||||
@@ -102,34 +104,20 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取登录状态
|
||||
*/
|
||||
@JvmStatic
|
||||
fun setLoginStatus(loginStatus: LoginStatusEnum) {
|
||||
CallerLogger.d(TAG, "setLoginStatus:${loginStatus}")
|
||||
loginService?.setLoginStatus(loginStatus)
|
||||
}
|
||||
|
||||
|
||||
fun removeLoginInfo() {
|
||||
loginService?.removeLoginInfo()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getLoginStatus(): LoginStatusEnum {
|
||||
fun getLoginStatus(): EnumLoginStatus {
|
||||
loginService?.let {
|
||||
return it.getLoginStatus()
|
||||
}
|
||||
return LoginStatusEnum.None
|
||||
return EnumLoginStatus.None
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getCarModel(): Carmodel {
|
||||
loginService?.let {
|
||||
return it.getCarModel()
|
||||
}
|
||||
return Carmodel.T2
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 是否登录中
|
||||
*/
|
||||
@JvmStatic
|
||||
fun isLogin(): Boolean {
|
||||
loginService?.let {
|
||||
@@ -138,72 +126,73 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
return false
|
||||
}
|
||||
|
||||
fun invokeLoginStatusChange(currentStatus: LoginStatusEnum) {
|
||||
Log.d("登录","设置源:invokeLoginStatusChange")
|
||||
if(!FunctionBuildConfig.isOffLine){
|
||||
if(currentStatus==LoginStatusEnum.Login){
|
||||
Log.d("登录","设置源:queryLoginStatusByNet")
|
||||
BizLoopManager.setLoopFunction(TAGLoopStatus, LoopInfo(60*2, ::queryLoginStatusByNet,immediately = true, scheduler = Schedulers.io()))
|
||||
}else{
|
||||
BizLoopManager.removeLoopFunction(TAGLoopStatus)
|
||||
}
|
||||
/**
|
||||
* 获取车辆模型
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getCarModel(): Carmodel {
|
||||
loginService?.let {
|
||||
return it.getCarModelType()
|
||||
}
|
||||
return Carmodel.T2
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送登录信息到乘客屏
|
||||
*/
|
||||
fun sendLogin2Client() {
|
||||
loginService?.sendLogin2Client()
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录状态变更通知
|
||||
*/
|
||||
fun invokeLoginStatusChange(currentStatus: EnumLoginStatus) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onStatusChange(currentStatus)
|
||||
listener.onLoginStatusChange(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
fun invokeLBusinessTypeChange(currentStatus: Product) {
|
||||
/**
|
||||
* 业务模式发生变化通知
|
||||
*/
|
||||
fun invokeLProductChange(currentStatus: Product) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onBusinessChange(currentStatus)
|
||||
}
|
||||
}
|
||||
fun invokeLBusinessTypeChangeDebug(currentStatus: Product) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onBusinessChangeDebug(currentStatus)
|
||||
listener.onProductChange(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
fun invokeLOpenOrderStatusChange(currentStatus: OpenOrderStatusEnum) {
|
||||
/**
|
||||
* 车型发生变化通知
|
||||
*/
|
||||
fun invokeLVehicleChange(currentStatus: Vehicle) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onVehicleChage(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单状态变化发送通知
|
||||
*/
|
||||
fun invokeOpenOrderStatusChange(currentStatus: EnumOpenOrderStatus) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onOpenOrderStatusEnumChange(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun checkBusiness(businessType: Int):Boolean {
|
||||
loginService?.let {
|
||||
return it.checkBusiness(businessType)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun checkAllEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
):Boolean {
|
||||
loginService?.let {
|
||||
return it.checkAllEnv(projectType,envType,vehicleType,businessType)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun changeStatus(status: String) {
|
||||
loginService?.let {
|
||||
it.changeStatus(status)
|
||||
}
|
||||
loginService?.changeStatus(status)
|
||||
}
|
||||
|
||||
override fun doSomeAfterAddListener(tag: String, listener: ILoginCallback) {
|
||||
super.doSomeAfterAddListener(tag, listener)
|
||||
listener.onStatusChange(getLoginStatus())
|
||||
listener.onBusinessChange(getBusInessType())
|
||||
listener.onLoginStatusChange(getLoginStatus())
|
||||
listener.onProductChange(getProductType())
|
||||
listener.onVehicleChage(getVehicleType())
|
||||
listener.onOpenOrderStatusEnumChange(getOpenOrderType())
|
||||
listener.onCarModelChange(getCarModel())
|
||||
}
|
||||
@@ -215,6 +204,9 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 车辆模型变化通知
|
||||
*/
|
||||
fun invokeCarModelChange(carModel: Carmodel) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
@@ -222,5 +214,12 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
}
|
||||
}
|
||||
|
||||
fun invokeTenantIdChange(tenantId: Long) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onTenantIdChange(tenantId)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.mogo.och.common.module.biz.login.bean
|
||||
|
||||
data class OchBizInfo(
|
||||
|
||||
//9: taxi. 10: bus公交 11:接驳 13:包车 14:班车
|
||||
val businessType: Int = -1,
|
||||
|
||||
// taxi使用
|
||||
// 订单号
|
||||
val orderNo: String = "",
|
||||
//1接单中,0暂停接单
|
||||
val servingStatus: Int = 0,
|
||||
|
||||
//接驳、公交、班车使用
|
||||
// 正在执行的线路id
|
||||
val lineId: Long,
|
||||
// 正在执行的班次id
|
||||
val taskId: Long,
|
||||
// 当前站点
|
||||
val currentSite: Long,
|
||||
// 是否滑动出发
|
||||
val leaving: Boolean,
|
||||
// 当前班次的模板id
|
||||
val shiftsId: Long,
|
||||
// 当前班次的具体时间
|
||||
val taskDate: Long,
|
||||
|
||||
// 包车使用
|
||||
// 当前站点id 包车使用
|
||||
val siteId: Long,
|
||||
// 包车车辆状态 1:闲置中 2:使用中
|
||||
val businessStatus: Long,
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.mogo.och.common.module.biz.login.bean
|
||||
|
||||
data class OchCarInfo(
|
||||
val plateNumber:String?,
|
||||
val vin:String?,
|
||||
val cityCode:String?,// 车辆所在城市
|
||||
val brand:String?,// 车辆生产产商 品牌
|
||||
val carModel:String?,// 车辆类型 型号
|
||||
val photos:String?,// 车身照片
|
||||
// 租户id
|
||||
val tenantId: Long?,
|
||||
)
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.mogo.och.common.module.biz.login.bean
|
||||
|
||||
data class OchLoginInfo(
|
||||
//1登录,0登出
|
||||
val driverStatus: Int = 0,
|
||||
// 1 运营, 2 测试, 3演示
|
||||
val purpose: Int = 0,
|
||||
// 后台车辆配置的sn
|
||||
val sn: String = "",
|
||||
// 司机手机号
|
||||
val phone: String = "",
|
||||
// 司机id
|
||||
val driverId: Long?,
|
||||
)
|
||||
@@ -4,8 +4,9 @@ import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OFFLINE
|
||||
import com.mogo.och.common.module.biz.lansocket.LoginLanDriverSocket
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
@@ -17,18 +18,20 @@ object OfflineManager : ILoginCallback {
|
||||
private var offlineService: OfflineService? = ARouter.getInstance().build(OchCommonConst.BIZ_OFFLINE).navigation() as OfflineService
|
||||
|
||||
init {
|
||||
CallerLogger.d(TAG,"初始化离线系统")
|
||||
LoginStatusManager.addListener(TAG,this)
|
||||
}
|
||||
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum?) {
|
||||
if(!FunctionBuildConfig.isOffLine){
|
||||
if(currentStatus==LoginStatusEnum.Login) {
|
||||
// 同步数据
|
||||
synergyBaseData()
|
||||
// 删除正在运行的数据
|
||||
deleteObsoleteData()
|
||||
}
|
||||
}
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus?) {
|
||||
// TODO: 6.10.0 删除离线数据
|
||||
// if(!FunctionBuildConfig.isOffLine){
|
||||
// if(currentStatus==EnumLoginStatus.Login) {
|
||||
// // 同步数据
|
||||
// synergyBaseData()
|
||||
// // 删除正在运行的数据
|
||||
// deleteObsoleteData()
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -109,7 +109,7 @@ object ScannerManager : IOchLanPassengerStatusListener {
|
||||
|
||||
override fun onReceive(data: VerificationData?) {
|
||||
OchChainLogManager.writeChainLogScanner(
|
||||
TAG + "onActiveDataReceive",
|
||||
TAG + "ScannerManageronActiveDataReceive",
|
||||
"扫码结果:data:${data}"
|
||||
)
|
||||
data?.let {
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
|
||||
open class BaseDPMsg(
|
||||
open var type: Int = DPMsgType.TYPE_CLIENT_REGISTER.type,
|
||||
open var msgVersion: Int = 1,
|
||||
open var msgVersion: Int = 2,
|
||||
open var targetScreenTypes: MutableList<ScreenType> =
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
mutableListOf(ScreenType.Passenger, ScreenType.Guide)
|
||||
|
||||
@@ -22,5 +22,6 @@ enum class DPMsgType(val type: Int) {
|
||||
TYPE_WRITEOFF_INFO_DETAIL(13), //核销信息
|
||||
TYPE_WRITEOFF_INFO_RESULT(14), //核销结果
|
||||
TYPE_OUTOF_VOICE(15), //转发给乘客屏播放
|
||||
TYPE_LOGIN_INFO(16), //转发给乘客屏播放
|
||||
TYPE_CLIENT_REGISTER(12); //客户端注册 服务端需要
|
||||
}
|
||||
@@ -1,5 +1,9 @@
|
||||
package com.mogo.och.common.module.manager.socket.lan.bean
|
||||
|
||||
import com.mogo.commons.env.Env
|
||||
import com.mogo.commons.env.Project
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2023/3/27
|
||||
@@ -130,6 +134,11 @@ data class OutofVoice(
|
||||
val notice: String,
|
||||
) : BaseDPMsg(DPMsgType.TYPE_OUTOF_VOICE.type, targetScreenTypes = mutableListOf(ScreenType.Passenger))
|
||||
|
||||
data class LoginInfo2Client(
|
||||
val loginInfo: String,
|
||||
val project: Project,
|
||||
val env: Env,
|
||||
) : BaseDPMsg(DPMsgType.TYPE_LOGIN_INFO.type,targetScreenTypes = mutableListOf(ScreenType.Passenger))
|
||||
|
||||
// 车辆类型
|
||||
enum class VehicleType {
|
||||
|
||||
@@ -2,11 +2,9 @@ package com.mogo.och.common.module.network.interceptor
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.ObservableSource
|
||||
import io.reactivex.functions.Function
|
||||
@@ -19,12 +17,8 @@ class FRetryWithTime<T : BaseData> : Function<T, ObservableSource<T>> {
|
||||
MoGoAiCloudClient.getInstance().refreshToken()
|
||||
return Observable.error(OchCommonRetryException())
|
||||
}else if(it.code == 1003){
|
||||
if(!FunctionBuildConfig.isOffLine&&!FunctionBuildConfig.ochdebug){
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
CallerLogger.d("FRetryWithTime", "接口失败报错 1003:${LoginStatusEnum.Logout}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
|
||||
}
|
||||
}
|
||||
CallerLogger.d("FRetryWithTime", "接口失败报错 1003:${EnumLoginStatus.Logout}")
|
||||
LoginStatusManager.queryLoginStatusByNet(false)
|
||||
}
|
||||
}
|
||||
return Observable.just(baseData)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.mogo.och.common.module.utils
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.env.Env
|
||||
import com.mogo.commons.env.EnvUtils
|
||||
import com.mogo.commons.env.Project
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
@@ -8,6 +10,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
@@ -41,7 +44,7 @@ object FlavorUtils {
|
||||
} else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
|
||||
info.append(" B2")
|
||||
} else {
|
||||
info.append(" C1")
|
||||
info.append(" none")
|
||||
}
|
||||
|
||||
when (DebugConfig.getNetMode()) {
|
||||
@@ -68,61 +71,14 @@ object FlavorUtils {
|
||||
}
|
||||
|
||||
info.append(" ${AppUtils.getAppVersionName()}")
|
||||
info.append(" AppSN:${SharedPrefsMgr.getInstance().sn}")
|
||||
info.append(" AppSN:${OchSPManager.getSn()}")
|
||||
return info.toString()
|
||||
}
|
||||
|
||||
fun getBusinessInfo(businessType: Int): String {
|
||||
val businessEnum = Product.valueOf(businessType)
|
||||
FunctionBuildConfig.supportBusiness.forEach {
|
||||
when (it) {
|
||||
"shuttle" -> {
|
||||
val isSupply = businessEnum == Product.SHUTTLE
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
"bus" -> {
|
||||
val isSupply = businessEnum == Product.BUS
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
"taxi" -> {
|
||||
val isSupply = businessEnum == Product.TAXI
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
"charter" -> {
|
||||
val isSupply = businessEnum == Product.CHARTER
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
"scheduled" -> {
|
||||
val isSupply = businessEnum == Product.SCHEDULED
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
val reason = StringBuilder()
|
||||
reason.append("业务异常<当前支持:")
|
||||
FunctionBuildConfig.supportBusiness.forEachIndexed { index, s ->
|
||||
if (index == FunctionBuildConfig.supportBusiness.size - 1) {
|
||||
reason.append(s)
|
||||
} else {
|
||||
reason.append("${s},")
|
||||
}
|
||||
}
|
||||
when (businessEnum) {
|
||||
Product.TAXI -> reason.append(" 后台配置:taxi>")
|
||||
Product.BUS -> reason.append(" 后台配置:bus>")
|
||||
@@ -212,100 +168,25 @@ object FlavorUtils {
|
||||
}
|
||||
|
||||
fun checkAllEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
projectType: Project,
|
||||
envType: Env,
|
||||
): String {
|
||||
|
||||
val reason = StringBuilder()
|
||||
|
||||
val isProjectSupply = when (ProjectUtils.getProjectType()) {
|
||||
Project.SAAS -> projectType == ProjectType.saas
|
||||
Project.DALI -> projectType == ProjectType.dali
|
||||
Project.MOGO -> projectType == ProjectType.mogo
|
||||
Project.YANTAI -> projectType == ProjectType.yantai
|
||||
}
|
||||
val isProjectSupply = ProjectUtils.getProjectType()==projectType
|
||||
|
||||
if (!isProjectSupply) {
|
||||
reason.append("项目异常<当前:${ProjectUtils.getProjectType().name}, 后台配置:${projectType.name}> ")
|
||||
reason.append("项目异常<当前:${ProjectUtils.getProjectType().value}, 后台配置:${projectType.value}> ")
|
||||
}
|
||||
|
||||
val currentVehicle: String
|
||||
val vehicleTypeSupply =
|
||||
if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
|
||||
currentVehicle = VehicleType.T1T2.name
|
||||
vehicleType == VehicleType.T1T2
|
||||
} else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) {
|
||||
currentVehicle = VehicleType.M1.name
|
||||
vehicleType == VehicleType.M1
|
||||
} else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
|
||||
currentVehicle = VehicleType.B1.name
|
||||
vehicleType == VehicleType.B1
|
||||
} else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
|
||||
currentVehicle = VehicleType.B2.name
|
||||
vehicleType == VehicleType.B2
|
||||
} else {
|
||||
currentVehicle = VehicleType.C1.name
|
||||
vehicleType == VehicleType.C1
|
||||
}
|
||||
if (!vehicleTypeSupply) {
|
||||
reason.append("车型异常<当前:${currentVehicle}, 后台配置:${vehicleType.name}> ")
|
||||
}
|
||||
val envTypeSupply = EnvUtils.getEnvType()==envType
|
||||
|
||||
val currentenvType: String
|
||||
val envTypeSupply = when (DebugConfig.getNetMode()) {
|
||||
2 -> {
|
||||
currentenvType = EnvType.qa.name
|
||||
envType == EnvType.qa
|
||||
}
|
||||
|
||||
3 -> {
|
||||
currentenvType = EnvType.online.name
|
||||
envType == EnvType.online
|
||||
}
|
||||
|
||||
4 -> {
|
||||
currentenvType = EnvType.demo.name
|
||||
envType == EnvType.demo
|
||||
}
|
||||
|
||||
else -> {
|
||||
currentenvType = EnvType.qa.name
|
||||
envType == EnvType.qa
|
||||
}
|
||||
}
|
||||
if (!envTypeSupply) {
|
||||
reason.append("环境异常<当前:${currentenvType} 后台配置:${envType.name}> ")
|
||||
}
|
||||
|
||||
|
||||
val businessTypeSupply = checkBusinessMine(businessType)
|
||||
|
||||
if (!businessTypeSupply) {
|
||||
reason.append("业务异常<当前支持:")
|
||||
FunctionBuildConfig.supportBusiness.forEachIndexed { index, s ->
|
||||
if (index == FunctionBuildConfig.supportBusiness.size - 1) {
|
||||
reason.append(s)
|
||||
} else {
|
||||
reason.append("${s},")
|
||||
}
|
||||
}
|
||||
reason.append(" 后台配置:${businessType.name}> ")
|
||||
reason.append("环境异常<当前:${EnvUtils.getEnvType().value} 后台配置:${envType.value}> ")
|
||||
}
|
||||
|
||||
return reason.toString()
|
||||
}
|
||||
|
||||
fun checkBusinessMine(businessType: BusinessType): Boolean {
|
||||
if (businessType == BusinessType.none) {
|
||||
return true
|
||||
}
|
||||
FunctionBuildConfig.supportBusiness.forEach {
|
||||
if (businessType.name == it) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
||||
@@ -42,7 +42,7 @@ class LoadingMapStatusView @JvmOverloads constructor(
|
||||
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
CallerLogger.d(TAG,"onAttachedToWindow")
|
||||
CallerLogger.d(TAG,"地图loading_onAttachedToWindow")
|
||||
LoginStatusManager.addListener(TAG,this)
|
||||
visibility = VISIBLE
|
||||
MogoMapListenerHandler.mogoMapListenerHandler.registerHostMapListener(TAG,this)
|
||||
|
||||
@@ -3,15 +3,16 @@ package com.mogo.och.common.module.wigets.map.orderstatus
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
|
||||
class OrderStatusViewModel : ViewModel(), ILoginCallback {
|
||||
|
||||
private val TAG = OrderStatusViewModel::class.java.simpleName
|
||||
private val TAG = M_OCHCOMMON+OrderStatusViewModel::class.java.simpleName
|
||||
|
||||
private var viewCallback: IVisualCallback? = null
|
||||
|
||||
@@ -26,11 +27,12 @@ class OrderStatusViewModel : ViewModel(), ILoginCallback {
|
||||
}
|
||||
|
||||
fun setDistanceCallback(viewCallback: IVisualCallback) {
|
||||
CallerLogger.d(TAG,"监听接单状态")
|
||||
LoginStatusManager.addListener(TAG, this)
|
||||
this.viewCallback = viewCallback
|
||||
}
|
||||
|
||||
override fun onOpenOrderStatusEnumChange(businessEnum: OpenOrderStatusEnum?) {
|
||||
override fun onOpenOrderStatusEnumChange(businessEnum: EnumOpenOrderStatus?) {
|
||||
CallerLogger.d(TAG,"新的接单状态${businessEnum}")
|
||||
UiThreadHandler.post({
|
||||
if (LoginStatusManager.isOpenOrderType()) {
|
||||
|
||||
Reference in New Issue
Block a user