[charter] m1司机端登陆

This commit is contained in:
wangmingjun
2023-02-23 19:43:21 +08:00
parent 9a963cba9e
commit 9abc8ff24a
5 changed files with 184 additions and 17 deletions

View File

@@ -6,7 +6,7 @@ import com.alibaba.android.arouter.launcher.ARouter
import com.charter.driverm1.view.SlidePanelView
import com.magic.mogo.och.charter.R
import com.magic.mogo.och.charter.base.CharterBaseFragment
import com.magic.mogo.och.charter.login.LoginCharterImpl
import com.magic.mogo.och.charter.net.login.LoginDriverM1Impl
import com.magic.mogo.och.charter.presenter.DriverM1Presenter
import com.mogo.eagle.core.data.temp.EventLogout
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
@@ -36,7 +36,7 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
loginService?.registerFragment(
this,
presenter,
LoginCharterImpl()
LoginDriverM1Impl()
)
}
}
@@ -55,7 +55,7 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
fun changeOverview(eventLogout: EventLogout) {
if (eventLogout.messgae == EventLogout.LOGOUT_TYPE) {
d(SceneConstant.M_BUS + TAG, "changeOverview Event消息去登出")
mPresenter.logout()
mPresenter?.logout()
}
}

View File

@@ -1,13 +1,10 @@
package com.magic.mogo.och.charter.net
import com.mogo.eagle.core.data.BaseData
import io.reactivex.Observable
import retrofit2.http.*
/**
* @author: wangmingjun
* @date: 2023/2/22
*/
interface IDriverM1Service {
}

View File

@@ -1,4 +1,4 @@
package com.magic.mogo.och.charter.login
package com.magic.mogo.och.charter.net.login
import android.content.Context
import com.mogo.eagle.core.data.BaseData
@@ -8,16 +8,11 @@ import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
import com.mogo.och.common.module.biz.network.LoginDefaultManage
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.biz.network.OchCommonServiceManager
/**
* @author: wangmingjun
* @date: 2023/2/23
*/
class LoginCharterImpl: LoginDefaultManage {
class LoginDriverM1Impl: LoginDefaultManage {
override fun getPhoneCode(
context: Context,
phone: String?,
context: Context, phone: String?,
callback: OchCommonServiceCallback<BaseData>?
) {
OchCommonServiceManager.getPhoneCode(context,phone,callback)
@@ -47,4 +42,6 @@ class LoginCharterImpl: LoginDefaultManage {
) {
OchCommonServiceManager.queryDriverServiceStatus(context,callback)
}
}

View File

@@ -0,0 +1,107 @@
package com.magic.mogo.och.charter.net.login
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.biz.network.interceptor.transformTry
/**
* Created by pangfan on 2021/8/19
*/
object OchCommonServiceManager {
private const val TAG = "OchCommonServiceManager"
private val mLoginServiceApi: OchLoginServiceApi =
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
OchLoginServiceApi::class.java
)
/**
* 获取手机验证码
* @param context
* @param callback
*/
@JvmStatic
fun getPhoneCode(
context: Context, phone: String?,
callback: OchCommonServiceCallback<BaseData>?
) {
mLoginServiceApi.getPhoneCode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
TaxiLoginSmsReqBean(phone)
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode"))
}
/**
* 通过验证码登录
* @param context
* @param callback
*/
@JvmStatic
fun gotoLoginBycode(
context: Context, phone: String?, code: String?,
location4Login: TaxiLoginReqBean.Location4Login?,
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
) {
val sn = MoGoAiCloudClientConfig.getInstance().sn
mLoginServiceApi.gotoLoginBycode4Bus(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
TaxiLoginReqBean(phone, code, sn, location4Login)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode"))
}
/**
* 登出
*/
@JvmStatic
fun logout(
context: Context,
location4Login: TaxiLogoutReqBean.Location4Login?,
callback: OchCommonServiceCallback<BaseData>?
) {
mLoginServiceApi.logout4Bus(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().sn, location4Login)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
}
/**
* 接单状态和登录状态查询
*
* @param context
* @param callback
*/
@JvmStatic
fun queryDriverServiceStatus(
context: Context,
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
) {
if (MoGoAiCloudClientConfig.getInstance().token.isEmpty()) {
callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等")
MoGoAiCloudClient.getInstance().refreshToken()
return
}
mLoginServiceApi.queryDriverServiceStatusAndLoginStatus(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
MoGoAiCloudClientConfig.getInstance().token,
MoGoAiCloudClientConfig.getInstance().sn
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
}
}

View File

@@ -0,0 +1,66 @@
package com.magic.mogo.och.charter.net.login;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean;
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean;
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean;
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* Created by pangfan on 2021/8/19
* <p>
* 网约车-出租车接口定义
*/
interface OchLoginServiceApi {
/**
* 获取手机验证码
*
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-rental-cabin/api/sms/v1/driver/sendSms")
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header("appId") String appId
, @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data);
/**
* 通过验证码登录
*
* @param appId
* @param ticket
* @param data
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-rental-cabin/api/flow/v1/driver/startOperation")
Observable<TaxiLoginRespBean> gotoLoginBycode4Bus(@Header("appId") String appId
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
/**
* 登出接口
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-rental-cabin/api/flow/v1/driver/endOperation")
Observable<BaseData> logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket,
@Body TaxiLogoutReqBean data);
/**
* 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端
*
* @param sn
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@GET("/och-rental-cabin/api/business/v1/driver/loginStatus")
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId
, @Header("ticket") String ticket, @Query("sn") String sn);
}