refactor(user): 重构司机信息存储逻辑
- 将司机信息从 MMKV 迁移到 Room 数据库 - 新增 DriverInfoBean 实体类和 DriverInfoDao接口 - 更新 GlobalData 中的 driverInfo 相关逻辑- 修改相关 Activity 和 ViewModel 中的代码,使用新的数据库存储方式- 优化了司机信息的获取和更新流程
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
package com.za.net
|
||||
|
||||
import com.za.bean.AppNewDriverInfoDTO
|
||||
import com.za.bean.BaseResponse
|
||||
import com.za.bean.BatteryCostQueryBean
|
||||
import com.za.bean.BatteryCostQueryRequest
|
||||
@ -30,6 +31,7 @@ import com.za.bean.VehicleInfo
|
||||
import com.za.bean.db.order.OrderInfo
|
||||
import com.za.bean.db.order.PhotoTemplateInfo
|
||||
import com.za.bean.request.AcceptOrderRequest
|
||||
import com.za.bean.request.AppNewOrderVoiceRequest
|
||||
import com.za.bean.request.CustomerPaymentCreateBean
|
||||
import com.za.bean.request.CustomerPaymentCreateRequest
|
||||
import com.za.bean.request.DriverFaceCompareBean
|
||||
@ -114,6 +116,10 @@ interface ApiService {
|
||||
@POST("/driverApp/task/login")
|
||||
fun login(@Body info : LoginRequest) : Observable<BaseResponse<DriverInfo?>>
|
||||
|
||||
//获取该手机号下面服务商列表
|
||||
@POST("/driverApp/supplier/getDriverListInfo")
|
||||
fun getDriverListInfo(@Body info : VerifyCodeRequest) : Observable<BaseResponse<List<AppNewDriverInfoDTO>>>
|
||||
|
||||
@POST("/driverApp/task/loginWithTask")
|
||||
fun loginWithTask(@Body loginWithTaskRequest : LoginWithTaskRequest) : Observable<BaseResponse<LoginWithTaskBean>>
|
||||
|
||||
@ -262,4 +268,7 @@ interface ApiService {
|
||||
//获取车辆维修历史
|
||||
@POST("/driverApp/supplier/v2/vehicleMaintenanceList")
|
||||
fun vehicleMaintenanceList(@Body info : FetchVehicleMaintenanceSubmitHistoryRequestBean) : Observable<BaseResponse<List<VehicleMaintenanceHistoryBean>>>
|
||||
|
||||
@POST("driverApp/base/getVoiceUrl")
|
||||
fun getVoiceUrl(@Body info : AppNewOrderVoiceRequest) : Observable<BaseResponse<String>>
|
||||
}
|
@ -5,12 +5,10 @@ import android.graphics.BitmapFactory
|
||||
import com.blankj.utilcode.util.ActivityUtils
|
||||
import com.blankj.utilcode.util.ImageUtils
|
||||
import com.za.base.Const
|
||||
import com.za.bean.DriverInfo
|
||||
import com.za.bean.GeneralInfo
|
||||
import com.za.bean.ImageBean
|
||||
import com.za.bean.JpushBean
|
||||
import com.za.bean.NewOrderRequestBean
|
||||
import com.za.bean.VehicleInfo
|
||||
import com.za.bean.db.ele.EleCarDamagePhotoBean
|
||||
import com.za.bean.db.ele.EleWorkOrderBean
|
||||
import com.za.bean.db.order.OrderInfo
|
||||
@ -120,8 +118,8 @@ object CommonMethod {
|
||||
success : (GeneralInfo) -> Unit = {},
|
||||
failed : (String?) -> Unit = {}) {
|
||||
val generalInfoRequest =
|
||||
GeneralInfoRequest(vehicleId = vehicleId ?: GlobalData.vehicleInfo?.vehicleId,
|
||||
driverId = userId ?: GlobalData.driverInfo?.userId,
|
||||
GeneralInfoRequest(vehicleId = vehicleId ?: GlobalData.driverInfoBean?.vehicleId,
|
||||
driverId = userId ?: GlobalData.driverInfoBean?.userId,
|
||||
deviceId = DeviceUtil.getAndroidId(ActivityUtils.getTopActivity()))
|
||||
RetrofitHelper.getDefaultService().generalInfo(generalInfoRequest)
|
||||
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
|
||||
@ -129,51 +127,27 @@ object CommonMethod {
|
||||
override fun doSuccess(it : GeneralInfo?) {
|
||||
if (it == null) {
|
||||
failed("获取车辆信息失败")
|
||||
LogUtil.print("getGenerateInfo", "获取车辆信息失败")
|
||||
return
|
||||
}
|
||||
if (GlobalData.vehicleInfo == null) {
|
||||
GlobalData.vehicleInfo = VehicleInfo(vehicleId = it.vehicleId,
|
||||
vehicleName = it.vehicleName,
|
||||
userName = it.userName,
|
||||
userPhone = it.userPhone,
|
||||
status = it.vehicleState,
|
||||
plateNumber = it.plateNumber,
|
||||
vehicleState = it.vehicleState,
|
||||
supplierType = it.supplierType)
|
||||
} else {
|
||||
GlobalData.vehicleInfo =
|
||||
GlobalData.vehicleInfo?.copy(vehicleId = it.vehicleId,
|
||||
vehicleName = it.vehicleName,
|
||||
userName = it.userName,
|
||||
userPhone = it.userPhone,
|
||||
status = it.vehicleState,
|
||||
plateNumber = it.plateNumber,
|
||||
vehicleState = it.vehicleState,
|
||||
supplierType = it.supplierType)
|
||||
}
|
||||
val driverInfoBean = GlobalData.driverInfoBean
|
||||
GlobalData.driverInfoBean = driverInfoBean?.copy(vehicleId = it.vehicleId,
|
||||
vehicleName = it.vehicleName,
|
||||
userName = it.userName,
|
||||
userPhone = it.userPhone,
|
||||
plateNumber = it.plateNumber,
|
||||
vehicleState = it.vehicleState,
|
||||
supplierType = it.supplierType,
|
||||
userPortrait = it.userPortrait,
|
||||
userId = it.userId,
|
||||
supplierId = it.supplierId,
|
||||
deviceId = it.deviceId,
|
||||
supplierName = it.supplierName,
|
||||
authStatus = it.authStatus,
|
||||
serviceList = it.serviceList?.toString())
|
||||
|
||||
if (GlobalData.driverInfo == null) {
|
||||
GlobalData.driverInfo = DriverInfo(userPortrait = it.userPortrait,
|
||||
userName = it.userName,
|
||||
userId = it.userId,
|
||||
userPhone = it.userPhone,
|
||||
supplierId = it.supplierId.toString(),
|
||||
supplierName = it.supplierName,
|
||||
authStatus = it.authStatus,
|
||||
supplierType = it.supplierType,
|
||||
serviceList = it.serviceList)
|
||||
} else {
|
||||
GlobalData.driverInfo =
|
||||
GlobalData.driverInfo?.copy(userPortrait = it.userPortrait,
|
||||
userName = it.userName,
|
||||
userId = it.userId,
|
||||
userPhone = it.userPhone,
|
||||
supplierId = it.supplierId.toString(),
|
||||
supplierName = it.supplierName,
|
||||
authStatus = it.authStatus,
|
||||
supplierType = it.supplierType,
|
||||
serviceList = it.serviceList)
|
||||
}
|
||||
LogUtil.print("GlobalData.driverInfoBean",
|
||||
"${GlobalData.driverInfoBean?.toJson()}}")
|
||||
|
||||
success(it)
|
||||
}
|
||||
@ -187,7 +161,7 @@ object CommonMethod {
|
||||
}
|
||||
|
||||
fun getNewOrder(context : Context) {
|
||||
val newOrderRequestBean = NewOrderRequestBean(GlobalData.vehicleInfo?.vehicleId)
|
||||
val newOrderRequestBean = NewOrderRequestBean(GlobalData.driverInfoBean?.vehicleId)
|
||||
RetrofitHelper.getDefaultService().getNewOrder(newOrderRequestBean)
|
||||
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(object : BaseObserver<JpushBean>() {
|
||||
@ -229,7 +203,7 @@ object CommonMethod {
|
||||
success : (OrderInfo?, List<OrderInfo>?) -> Unit,
|
||||
failed : (String?) -> Unit) {
|
||||
RetrofitHelper.getDefaultService()
|
||||
.queryOrderList(OrderListRequest(vehicleId = GlobalData.vehicleInfo?.vehicleId,
|
||||
.queryOrderList(OrderListRequest(vehicleId = GlobalData.driverInfoBean?.vehicleId,
|
||||
deviceId = DeviceUtil.getAndroidId(ActivityUtils.getTopActivity())))
|
||||
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(object : BaseObserver<List<OrderInfo>?>() {
|
||||
@ -246,33 +220,6 @@ object CommonMethod {
|
||||
val waitServiceOrders = it.filter { it.isCurrent == false }
|
||||
|
||||
if (inServicingOrder == null) {
|
||||
context?.let { context ->
|
||||
val order = it[0]
|
||||
NewOrderActivity.goNewOrderActivity(context,
|
||||
jpushBean = JpushBean(taskId = order.taskId,
|
||||
taskCode = order.taskCode,
|
||||
customerName = order.customerName,
|
||||
customerPhone = order.customerPhone,
|
||||
carBrand = order.carBrand,
|
||||
carModel = order.carModel,
|
||||
carNo = order.carNo,
|
||||
taskState = order.taskState,
|
||||
address = order.address,
|
||||
addressProperty = order.addressProperty,
|
||||
hotline = order.hotline,
|
||||
expectArriveTime = order.expectArriveTime,
|
||||
serviceTypeName = order.serviceTypeName,
|
||||
dispatchTime = order.dispatchTime,
|
||||
lat = order.lat,
|
||||
lng = order.lng,
|
||||
distLat = order.distLat,
|
||||
distLng = order.distLng,
|
||||
importantTip = order.importantTip,
|
||||
hasReplaceBatteryCapable = order.hasReplaceBatteryCapable,
|
||||
distAddress = order.distAddress,
|
||||
distAddressRemark = order.distAddressRemark,
|
||||
addressRemark = order.addressRemark))
|
||||
}
|
||||
success(null, waitServiceOrders)
|
||||
return
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.za.net
|
||||
|
||||
import android.util.Log
|
||||
import com.za.base.AppConfig
|
||||
import com.za.common.log.LogUtil
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.logging.HttpLoggingInterceptor
|
||||
import retrofit2.Retrofit
|
||||
@ -12,72 +13,55 @@ import java.net.URLDecoder
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
object RetrofitHelper {
|
||||
private var retrofit: Retrofit? = null
|
||||
private var apiService: ApiService? = null
|
||||
private val loggerInterceptor = HttpLoggingInterceptor {
|
||||
try {
|
||||
private var retrofit : Retrofit? = null
|
||||
private var apiService : ApiService? = null
|
||||
private val loggerInterceptor = HttpLoggingInterceptor {
|
||||
try {
|
||||
|
||||
if (it.contains("image/*") || it.contains("form-data; name=\"file\"")
|
||||
|| it.startsWith("Content-Type")
|
||||
|| it.startsWith("Content-Length")
|
||||
|| it.startsWith("Server")
|
||||
|| it.startsWith("Date")
|
||||
|| it.startsWith("Transfer-Encoding")
|
||||
|| it.startsWith("Connection")
|
||||
|| it.startsWith("X-")
|
||||
|| it.startsWith("token")
|
||||
|| it.startsWith("Cache-Control")
|
||||
|| it.startsWith("Expires")
|
||||
|| it.startsWith("Accept")
|
||||
|| it.startsWith("Vary")
|
||||
|| it.isEmpty()
|
||||
|| it.startsWith("Pragma")
|
||||
) {
|
||||
return@HttpLoggingInterceptor
|
||||
}
|
||||
if (it.contains("image/*") || it.contains("form-data; name=\"file\"") || it.startsWith("Content-Type") || it.startsWith(
|
||||
"Content-Length") || it.startsWith("Server") || it.startsWith("Date") || it.startsWith(
|
||||
"Transfer-Encoding") || it.startsWith("Connection") || it.startsWith("X-") || it.startsWith(
|
||||
"token") || it.startsWith("Cache-Control") || it.startsWith("Expires") || it.startsWith(
|
||||
"Accept") || it.startsWith("Vary") || it.isEmpty() || it.startsWith("Pragma")
|
||||
) {
|
||||
return@HttpLoggingInterceptor
|
||||
}
|
||||
|
||||
if (it.contains("name=\"file\"; filename")) {
|
||||
return@HttpLoggingInterceptor
|
||||
}
|
||||
Log.e(
|
||||
"--network--",
|
||||
URLDecoder.decode(it.replace(Regex("%(?![0-9a-fA-F]{2})"), ""), "utf-8")
|
||||
)
|
||||
} catch (e: UnsupportedEncodingException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
if (it.contains("name=\"file\"; filename")) {
|
||||
return@HttpLoggingInterceptor
|
||||
}
|
||||
LogUtil.print("--network--",
|
||||
URLDecoder.decode(it.replace(Regex("%(?![0-9a-fA-F]{2})"), ""), "utf-8"))
|
||||
} catch (e : UnsupportedEncodingException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
|
||||
}.setLevel(HttpLoggingInterceptor.Level.BODY)
|
||||
}.setLevel(HttpLoggingInterceptor.Level.BODY)
|
||||
|
||||
fun getDefaultService(): ApiService {
|
||||
return if (apiService == null) {
|
||||
apiService = getDefaultRetrofit().create(ApiService::class.java)
|
||||
apiService!!
|
||||
} else {
|
||||
apiService!!
|
||||
}
|
||||
}
|
||||
fun getDefaultService() : ApiService {
|
||||
return if (apiService == null) {
|
||||
apiService = getDefaultRetrofit().create(ApiService::class.java)
|
||||
apiService !!
|
||||
} else {
|
||||
apiService !!
|
||||
}
|
||||
}
|
||||
|
||||
private fun getDefaultRetrofit(): Retrofit {
|
||||
return if (retrofit == null) {
|
||||
retrofit = Retrofit.Builder().baseUrl(AppConfig.BASE_URL)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.addCallAdapterFactory(RxJava3CallAdapterFactory.create())
|
||||
.client(getOkHttpClient())
|
||||
.build()
|
||||
retrofit!!
|
||||
} else {
|
||||
retrofit!!
|
||||
}
|
||||
}
|
||||
private fun getDefaultRetrofit() : Retrofit {
|
||||
return if (retrofit == null) {
|
||||
retrofit = Retrofit.Builder().baseUrl(AppConfig.BASE_URL)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.addCallAdapterFactory(RxJava3CallAdapterFactory.create()).client(getOkHttpClient())
|
||||
.build()
|
||||
retrofit !!
|
||||
} else {
|
||||
retrofit !!
|
||||
}
|
||||
}
|
||||
|
||||
private fun getOkHttpClient(): OkHttpClient {
|
||||
return OkHttpClient.Builder()
|
||||
.connectTimeout(30, TimeUnit.SECONDS)
|
||||
.writeTimeout(60, TimeUnit.SECONDS)
|
||||
.readTimeout(60, TimeUnit.SECONDS)
|
||||
.addInterceptor(RequestEncryptInterceptor())
|
||||
.addInterceptor(loggerInterceptor)
|
||||
.build()
|
||||
}
|
||||
private fun getOkHttpClient() : OkHttpClient {
|
||||
return OkHttpClient.Builder().connectTimeout(30, TimeUnit.SECONDS)
|
||||
.writeTimeout(60, TimeUnit.SECONDS).readTimeout(60, TimeUnit.SECONDS)
|
||||
.addInterceptor(RequestEncryptInterceptor()).addInterceptor(loggerInterceptor).build()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user