feat(servicing): 新增快速登录功能并优化用户信息处理- 新增 FastLoginRequest 数据类用于快速登录

- 添加 iaiCompareFace API 接口用于人脸识别比较
- 更新 DriverInfo 数据类,增加 loginLogId 字段- 重构 GlobalData 中的用户信息存储逻辑,使用 MMKV替代数据库
- 优化 InServicingBottomView 中的订单放弃和拨打电话功能
- 更新 JpushBean,增加 userOrderId 字段
- 修改 AndroidManifest.xml 中的权限声明,使用动态应用ID
This commit is contained in:
songzhiling
2025-04-17 15:08:29 +08:00
parent 0f24648cb1
commit eb7a4585fa
30 changed files with 1626 additions and 1196 deletions

View File

@ -5,60 +5,82 @@ import com.amap.api.location.AMapLocation
import com.blankj.utilcode.util.AppUtils
import com.tencent.mmkv.MMKV
import com.za.bean.db.order.OrderInfo
import com.za.common.log.LogUtil
import com.za.room.RoomHelper
import com.za.room.db.user.DriverInfoBean
object GlobalData {
lateinit var application : Application
private val mmkv : MMKV by lazy { MMKV.defaultMMKV() }
var activityCount : Int = 0
var isMaster = AppUtils.getAppPackageName() == "com.za.rescue.dealer"
var token : String? = null
get() {
return MMKV.defaultMMKV().decodeString("ZD_TOKEN", null)
return mmkv.decodeString("ZD_TOKEN", null)
}
set(value) {
MMKV.defaultMMKV().encode("ZD_TOKEN", value)
mmkv.encode("ZD_TOKEN", value)
field = value
}
var regid : String? = null
get() {
return MMKV.defaultMMKV().decodeString("regid", null)
return mmkv.decodeString("regid", null)
}
set(value) {
MMKV.defaultMMKV().encode("regid", value)
mmkv.encode("regid", value)
field = value
}
var aesKey : String? = null
get() {
return MMKV.defaultMMKV().decodeString("AES_KEY", null)
return mmkv.decodeString("AES_KEY", null)
}
set(value) {
MMKV.defaultMMKV().encode("AES_KEY", value)
mmkv.encode("AES_KEY", value)
field = value
}
//新订单是否已经被处理
var isHandlerNewOrder : Boolean? = false
var driverInfoBean : DriverInfoBean? = null
private val lock = Any()
var driverInfoBean : DriverInfoBean?
get() {
val driverInfoBean = RoomHelper.db?.driverInfoDao()?.getDriverInfoFromUserId()
synchronized(lock) {
val driverInfoBean =
mmkv.decodeParcelable("driverInfoBean", DriverInfoBean::class.java)
LogUtil.print("driverInfo get", "driverInfoBean = $driverInfoBean")
return driverInfoBean
}
}
set(value) {
synchronized(lock) {
mmkv.encode("driverInfoBean", value)
if (value != null) {
lastLoginBean = value
}
LogUtil.print("driverInfo set", "driverInfoBean = $value")
}
}
var lastLoginBean : DriverInfoBean? = null
get() {
val driverInfoBean = mmkv.decodeParcelable("lastLoginBean", DriverInfoBean::class.java)
field = driverInfoBean
return driverInfoBean
}
set(value) {
RoomHelper.db?.driverInfoDao()?.updateDriverInfo(value)
mmkv.encode("lastLoginBean", value)
}
var currentOrder : OrderInfo? = null
get() {
return MMKV.defaultMMKV().decodeParcelable("currentOrder", OrderInfo::class.java)
return mmkv.decodeParcelable("currentOrder", OrderInfo::class.java)
}
set(value) {
MMKV.defaultMMKV().encode("currentOrder", value)
mmkv.encode("currentOrder", value)
if (RoomHelper.db?.orderDao()?.getCurrentOrder() == null && value != null) {
RoomHelper.db?.orderDao()?.insertOrder(value)
} else if (value != null) {
@ -78,10 +100,10 @@ object GlobalData {
var loginTime : Long? = null
get() {
return MMKV.defaultMMKV().decodeLong("loginTime", System.currentTimeMillis())
return mmkv.decodeLong("loginTime", System.currentTimeMillis())
}
set(value) {
MMKV.defaultMMKV().encode("loginTime", value ?: System.currentTimeMillis())
mmkv.encode("loginTime", value ?: System.currentTimeMillis())
field = value
}
@ -89,6 +111,7 @@ object GlobalData {
token = null
aesKey = null
currentLocation = null
driverInfoBean = null
loginTime = null
}