From 2f5bc5784b414f8fecc21ab2dcd08d1d4837d6a7 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 5 Jan 2023 18:39:45 +0800 Subject: [PATCH] =?UTF-8?q?[feature]=20=E7=99=BB=E5=BD=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=88=86=E6=95=A3=E5=88=B0bus=E5=92=8Ctaxi=E4=B9=98?= =?UTF-8?q?=E5=AE=A2=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/bus/net/LoginBusImpl.kt | 47 ++++++++ .../och/bus/net/OchCommonServiceManager.kt | 110 ++++++++++++++++++ .../mogo/och/bus/net/OchLoginServiceApi.java | 67 +++++++++++ .../mogo/och/bus/fragment/BusFragment.java | 3 +- .../java/com/mogo/och/bus/net/LoginBusImpl.kt | 47 ++++++++ .../och/bus/net/OchCommonServiceManager.kt | 108 +++++++++++++++++ .../mogo/och/bus/net/OchLoginServiceApi.java | 66 +++++++++++ .../module/biz/network/LoginDefaultManage.kt | 30 +++++ .../biz/network/OchCommonServiceManager.kt | 87 ++------------ .../module/biz/provider/LoginService.kt | 3 +- .../module/biz/provider/LoginServiceImpl.kt | 6 +- .../com/mogo/och/taxi/network/LoginBusImpl.kt | 47 ++++++++ .../taxi/network/OchCommonServiceManager.kt | 108 +++++++++++++++++ .../och/taxi/network/OchLoginServiceApi.java} | 27 +---- .../com/mogo/och/taxi/ui/TaxiFragment.java | 3 +- 15 files changed, 653 insertions(+), 106 deletions(-) create mode 100644 OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/LoginBusImpl.kt create mode 100644 OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/OchCommonServiceManager.kt create mode 100644 OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/OchLoginServiceApi.java create mode 100644 OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/LoginBusImpl.kt create mode 100644 OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OchCommonServiceManager.kt create mode 100644 OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OchLoginServiceApi.java create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/LoginDefaultManage.kt create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/LoginBusImpl.kt create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OchCommonServiceManager.kt rename OCH/{mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceApiNew.java => mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OchLoginServiceApi.java} (66%) diff --git a/OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/LoginBusImpl.kt b/OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/LoginBusImpl.kt new file mode 100644 index 0000000000..d40f31847b --- /dev/null +++ b/OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/LoginBusImpl.kt @@ -0,0 +1,47 @@ +package com.mogo.och.bus.net + +import android.content.Context +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.TaxiLogoutReqBean +import com.mogo.och.common.module.biz.network.LoginDefaultManage +import com.mogo.och.common.module.biz.network.OchCommonServiceCallback + +class LoginBusImpl: LoginDefaultManage { + + override fun getPhoneCode( + context: Context, phone: String?, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.getPhoneCode(context,phone,callback) + } + + override fun gotoLoginBycode( + context: Context, + phone: String?, + code: String?, + location4Login: TaxiLoginReqBean.Location4Login?, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback) + } + + override fun logout( + context: Context, + location4Login: TaxiLogoutReqBean.Location4Login?, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.logout(context,location4Login,callback) + } + + override fun queryDriverServiceStatus( + context: Context, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.queryDriverServiceStatus(context,callback) + } + + +} \ No newline at end of file diff --git a/OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/OchCommonServiceManager.kt b/OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/OchCommonServiceManager.kt new file mode 100644 index 0000000000..615d892390 --- /dev/null +++ b/OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/OchCommonServiceManager.kt @@ -0,0 +1,110 @@ +package com.mogo.och.bus.net + +import android.content.Context +import com.mogo.och.common.module.biz.constant.OchCommonConst.Companion.getBaseUrl +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.commons.debug.DebugConfig +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 +import io.reactivex.Observable + +/** + * Created by pangfan on 2021/8/19 + */ +object OchCommonServiceManager { + + private const val TAG = "OchCommonServiceManager" + + private val mOCHTaxiServiceApi: OchLoginServiceApi = + MoGoRetrofitFactory.getInstance(getBaseUrl()).create( + OchLoginServiceApi::class.java + ) + + /** + * 获取手机验证码 + * @param context + * @param callback + */ + @JvmStatic + fun getPhoneCode( + context: Context, phone: String?, + callback: OchCommonServiceCallback? + ) { + mOCHTaxiServiceApi.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? + ) { + val sn = MoGoAiCloudClientConfig.getInstance().sn + mOCHTaxiServiceApi.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? + ) { + mOCHTaxiServiceApi.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? + ) { + if (MoGoAiCloudClientConfig.getInstance().token.isEmpty()) { + callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等") + MoGoAiCloudClient.getInstance().refreshToken() + return + } + mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + MoGoAiCloudClientConfig.getInstance().token, + MoGoAiCloudClientConfig.getInstance().sn + ).transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus")) + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/OchLoginServiceApi.java b/OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/OchLoginServiceApi.java new file mode 100644 index 0000000000..94f28ec373 --- /dev/null +++ b/OCH/mogo-och-bus/src/basc/java/com/mogo/och/bus/net/OchLoginServiceApi.java @@ -0,0 +1,67 @@ +package com.mogo.och.bus.net; + +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.Path; +import retrofit2.http.Query; + +/** + * Created by pangfan on 2021/8/19 + *

+ * 网约车-出租车接口定义 + */ +interface OchLoginServiceApi { + /** + * 获取手机验证码 + * + * @return + */ + @Headers({"Content-type:application/json;charset=UTF-8"}) + @POST("/autopilot-car-hailing/driver/v2/driver/taxi/sendSms") + Observable 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("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startOperation") + Observable gotoLoginBycode4Bus(@Header("appId") String appId + , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); + + /** + * 登出接口 + */ + @Headers({"Content-type:application/json;charset=UTF-8"}) + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endOperation") + Observable logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket, + @Body TaxiLogoutReqBean data); + + /** + * 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端 + * + * @param sn + * @return + */ + @Headers({"Content-type:application/json;charset=UTF-8"}) + @GET("/autopilot-car-hailing/operation/v1/driver/bus/loginStatus") + Observable queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId + , @Header("ticket") String ticket, @Query("sn") String sn); + +} diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index 1e9e003dfe..9802b0cbae 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -28,6 +28,7 @@ import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.och.bus.R; import com.mogo.och.bus.bean.BusStationBean; import com.mogo.och.bus.constant.BusConst; +import com.mogo.och.bus.net.LoginBusImpl; import com.mogo.och.bus.presenter.BusPresenter; import com.mogo.och.bus.ui.BusStationCommonItem; import com.mogo.och.bus.ui.BusSwitchLineActivity; @@ -78,7 +79,7 @@ public class BusFragment extends BaseBusTabFragment super.onActivityCreated(savedInstanceState); loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation(); if(loginService!=null){ - loginService.registerFragment(this, getPresenter()); + loginService.registerFragment(this, getPresenter(),new LoginBusImpl()); } } @Override diff --git a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/LoginBusImpl.kt b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/LoginBusImpl.kt new file mode 100644 index 0000000000..d40f31847b --- /dev/null +++ b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/LoginBusImpl.kt @@ -0,0 +1,47 @@ +package com.mogo.och.bus.net + +import android.content.Context +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.TaxiLogoutReqBean +import com.mogo.och.common.module.biz.network.LoginDefaultManage +import com.mogo.och.common.module.biz.network.OchCommonServiceCallback + +class LoginBusImpl: LoginDefaultManage { + + override fun getPhoneCode( + context: Context, phone: String?, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.getPhoneCode(context,phone,callback) + } + + override fun gotoLoginBycode( + context: Context, + phone: String?, + code: String?, + location4Login: TaxiLoginReqBean.Location4Login?, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback) + } + + override fun logout( + context: Context, + location4Login: TaxiLogoutReqBean.Location4Login?, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.logout(context,location4Login,callback) + } + + override fun queryDriverServiceStatus( + context: Context, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.queryDriverServiceStatus(context,callback) + } + + +} \ No newline at end of file diff --git a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OchCommonServiceManager.kt b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OchCommonServiceManager.kt new file mode 100644 index 0000000000..0bd4423ead --- /dev/null +++ b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OchCommonServiceManager.kt @@ -0,0 +1,108 @@ +package com.mogo.och.bus.net + +import android.content.Context +import com.mogo.och.common.module.biz.constant.OchCommonConst.Companion.getBaseUrl +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 mOCHTaxiServiceApi: OchLoginServiceApi = + MoGoRetrofitFactory.getInstance(getBaseUrl()).create( + OchLoginServiceApi::class.java + ) + + /** + * 获取手机验证码 + * @param context + * @param callback + */ + @JvmStatic + fun getPhoneCode( + context: Context, phone: String?, + callback: OchCommonServiceCallback? + ) { + mOCHTaxiServiceApi.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? + ) { + val sn = MoGoAiCloudClientConfig.getInstance().sn + mOCHTaxiServiceApi.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? + ) { + mOCHTaxiServiceApi.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? + ) { + if (MoGoAiCloudClientConfig.getInstance().token.isEmpty()) { + callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等") + MoGoAiCloudClient.getInstance().refreshToken() + return + } + mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + MoGoAiCloudClientConfig.getInstance().token, + MoGoAiCloudClientConfig.getInstance().sn + ).transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus")) + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OchLoginServiceApi.java b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OchLoginServiceApi.java new file mode 100644 index 0000000000..9ff5908304 --- /dev/null +++ b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OchLoginServiceApi.java @@ -0,0 +1,66 @@ +package com.mogo.och.bus.net; + +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 + *

+ * 网约车-出租车接口定义 + */ +interface OchLoginServiceApi { + /** + * 获取手机验证码 + * + * @return + */ + @Headers({"Content-type:application/json;charset=UTF-8"}) + @POST("/autopilot-car-hailing/driver/v2/driver/taxi/sendSms") + Observable 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("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startOperation") + Observable gotoLoginBycode4Bus(@Header("appId") String appId + , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); + + /** + * 登出接口 + */ + @Headers({"Content-type:application/json;charset=UTF-8"}) + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endOperation") + Observable logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket, + @Body TaxiLogoutReqBean data); + + /** + * 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端 + * + * @param sn + * @return + */ + @Headers({"Content-type:application/json;charset=UTF-8"}) + @GET("/autopilot-car-hailing/operation/v1/driver/bus/loginStatus") + Observable queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId + , @Header("ticket") String ticket, @Query("sn") String sn); + +} diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/LoginDefaultManage.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/LoginDefaultManage.kt new file mode 100644 index 0000000000..9637d39f2c --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/LoginDefaultManage.kt @@ -0,0 +1,30 @@ +package com.mogo.och.common.module.biz.network + +import android.content.Context +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.TaxiLogoutReqBean + +interface LoginDefaultManage { + fun getPhoneCode( + context: Context, + phone: String?, + callback: OchCommonServiceCallback? + ) + fun gotoLoginBycode( + context: Context, phone: String?, code: String?, + location4Login: TaxiLoginReqBean.Location4Login?, + callback: OchCommonServiceCallback? + ) + fun logout( + context: Context, + location4Login: TaxiLogoutReqBean.Location4Login?, + callback: OchCommonServiceCallback? + ) + fun queryDriverServiceStatus( + context: Context, + callback: OchCommonServiceCallback? + ) +} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt index 6779e4a891..ba78e36d5b 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt @@ -23,10 +23,11 @@ object OchCommonServiceManager { private const val TAG = "OchCommonServiceManager" - private val mOCHTaxiServiceApi: OchCommonServiceApiNew = - MoGoRetrofitFactory.getInstance(getBaseUrl()).create( - OchCommonServiceApiNew::class.java - ) + private var loginDefaultManage: LoginDefaultManage?=null + + fun setLoginDefaultManage(loginDefaultManage: LoginDefaultManage?){ + this.loginDefaultManage = loginDefaultManage + } /** * 获取手机验证码 @@ -38,12 +39,7 @@ object OchCommonServiceManager { context: Context, phone: String?, callback: OchCommonServiceCallback? ) { - mOCHTaxiServiceApi.getPhoneCode( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - MoGoAiCloudClientConfig.getInstance().token, - TaxiLoginSmsReqBean(phone) - ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode")) + loginDefaultManage?.getPhoneCode(context,phone,callback) } /** @@ -57,27 +53,7 @@ object OchCommonServiceManager { location4Login: TaxiLoginReqBean.Location4Login?, callback: OchCommonServiceCallback? ) { - val sn = MoGoAiCloudClientConfig.getInstance().sn - var taxiLoginRespBeanObservable: Observable? = null - when (DebugConfig.getProductFlavor()) { - "fPadLenovoOchTaxi" -> { - //出租车司机 - taxiLoginRespBeanObservable = mOCHTaxiServiceApi.gotoLoginBycode4Taxi( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - MoGoAiCloudClientConfig.getInstance().token, - TaxiLoginReqBean(phone, code, sn, location4Login) - ).transformTry() - } - "fPadLenovoOchBus" -> { - //小巴车司机 - taxiLoginRespBeanObservable = mOCHTaxiServiceApi.gotoLoginBycode4Bus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - MoGoAiCloudClientConfig.getInstance().token, - TaxiLoginReqBean(phone, code, sn, location4Login) - ).transformTry() - } - } - taxiLoginRespBeanObservable?.subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode")) + loginDefaultManage?.gotoLoginBycode(context,phone,code,location4Login,callback) } /** @@ -89,26 +65,7 @@ object OchCommonServiceManager { location4Login: TaxiLogoutReqBean.Location4Login?, callback: OchCommonServiceCallback? ) { - var logout: Observable? = null - when (DebugConfig.getProductFlavor()) { - "fPadLenovoOchTaxi" -> { - //出租车司机 - logout = mOCHTaxiServiceApi.logout4Taxi( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - MoGoAiCloudClientConfig.getInstance().token, - TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().sn, location4Login) - ).transformTry() - } - "fPadLenovoOchBus" -> { - //小巴车司机 - logout = mOCHTaxiServiceApi.logout4Bus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - MoGoAiCloudClientConfig.getInstance().token, - TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().sn, location4Login) - ).transformTry() - } - } - logout?.subscribe(OchCommonSubscribeImpl(context, callback, "logout")) + loginDefaultManage?.logout(context,location4Login,callback) } /** @@ -122,33 +79,7 @@ object OchCommonServiceManager { context: Context, callback: OchCommonServiceCallback? ) { - if (MoGoAiCloudClientConfig.getInstance().token.isEmpty()) { - callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等") - MoGoAiCloudClient.getInstance().refreshToken() - return - } - var flavor = "" - when (DebugConfig.getProductFlavor()) { - "fPadLenovoOchTaxi" -> { - //出租车司机 - flavor = "taxi" - } - "fPadLenovoOchBus" -> { - //小巴车司机 - flavor = "bus" - } - "fPadLenovoOchBusPassenger" -> { - //小巴车乘客 - flavor = "bus/passenger" - } - } - mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus( - flavor, - MoGoAiCloudClientConfig.getInstance().serviceAppId, - MoGoAiCloudClientConfig.getInstance().token, - MoGoAiCloudClientConfig.getInstance().sn - ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus")) + loginDefaultManage?.queryDriverServiceStatus(context,callback) } } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt index 8ee6064620..485014cee5 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt @@ -3,6 +3,7 @@ package com.mogo.och.common.module.biz.provider import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.template.IProvider import com.mogo.och.common.module.biz.callback.ILoginCallback +import com.mogo.och.common.module.biz.network.LoginDefaultManage interface LoginService : IProvider { /** @@ -10,7 +11,7 @@ interface LoginService : IProvider { * @param fragment 主页面 * @param callback 回调 */ - fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?) + fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?,logindefaultmanage: LoginDefaultManage?) fun unRegisterFragment() diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt index 17e0d21e9a..cab0eb13dd 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt @@ -14,6 +14,8 @@ import com.mogo.och.common.module.biz.callback.ILoginCallback import com.mogo.och.common.module.biz.callback.ILoginViewCallback import com.mogo.och.common.module.biz.constant.LoginStatusManager import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.network.LoginDefaultManage +import com.mogo.och.common.module.biz.network.OchCommonServiceManager import com.mogo.och.common.module.biz.presenter.OchCommonLoginStatusDefaultPresenter import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment.Companion.newInstance @@ -35,14 +37,14 @@ class LoginServiceImpl : LoginService,ILoginViewCallback { } - override fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?) { + override fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?,logindefaultmanage: LoginDefaultManage?) { presenter = OchCommonLoginStatusDefaultPresenter() this.fragment = fragment presenter?.let { it.setLoginCallback(loginCallback, this) this.fragment?.lifecycle?.addObserver(it) } - + OchCommonServiceManager.setLoginDefaultManage(logindefaultmanage) } override fun unRegisterFragment() { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/LoginBusImpl.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/LoginBusImpl.kt new file mode 100644 index 0000000000..c57492cd1e --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/LoginBusImpl.kt @@ -0,0 +1,47 @@ +package com.mogo.och.taxi.network + +import android.content.Context +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.TaxiLogoutReqBean +import com.mogo.och.common.module.biz.network.LoginDefaultManage +import com.mogo.och.common.module.biz.network.OchCommonServiceCallback + +class LoginBusImpl: LoginDefaultManage { + + override fun getPhoneCode( + context: Context, phone: String?, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.getPhoneCode(context,phone,callback) + } + + override fun gotoLoginBycode( + context: Context, + phone: String?, + code: String?, + location4Login: TaxiLoginReqBean.Location4Login?, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback) + } + + override fun logout( + context: Context, + location4Login: TaxiLogoutReqBean.Location4Login?, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.logout(context,location4Login,callback) + } + + override fun queryDriverServiceStatus( + context: Context, + callback: OchCommonServiceCallback? + ) { + OchCommonServiceManager.queryDriverServiceStatus(context,callback) + } + + +} \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OchCommonServiceManager.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OchCommonServiceManager.kt new file mode 100644 index 0000000000..95d8c56cde --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OchCommonServiceManager.kt @@ -0,0 +1,108 @@ +package com.mogo.och.taxi.network + +import android.content.Context +import com.mogo.och.common.module.biz.constant.OchCommonConst.Companion.getBaseUrl +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 mOCHTaxiServiceApi: OchLoginServiceApi = + MoGoRetrofitFactory.getInstance(getBaseUrl()).create( + OchLoginServiceApi::class.java + ) + + /** + * 获取手机验证码 + * @param context + * @param callback + */ + @JvmStatic + fun getPhoneCode( + context: Context, phone: String?, + callback: OchCommonServiceCallback? + ) { + mOCHTaxiServiceApi.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? + ) { + val sn = MoGoAiCloudClientConfig.getInstance().sn + mOCHTaxiServiceApi.gotoLoginBycode4Taxi( + 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? + ) { + mOCHTaxiServiceApi.logout4Taxi( + 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? + ) { + if (MoGoAiCloudClientConfig.getInstance().token.isEmpty()) { + callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等") + MoGoAiCloudClient.getInstance().refreshToken() + return + } + mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + MoGoAiCloudClientConfig.getInstance().token, + MoGoAiCloudClientConfig.getInstance().sn + ).transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus")) + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceApiNew.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OchLoginServiceApi.java similarity index 66% rename from OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceApiNew.java rename to OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OchLoginServiceApi.java index d31f624578..19c9e85fbf 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceApiNew.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OchLoginServiceApi.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.network; +package com.mogo.och.taxi.network; 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; @@ -12,7 +12,6 @@ import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.Headers; import retrofit2.http.POST; -import retrofit2.http.Path; import retrofit2.http.Query; /** @@ -20,7 +19,7 @@ import retrofit2.http.Query; * * 网约车-出租车接口定义 */ -interface OchCommonServiceApiNew { +interface OchLoginServiceApi { /** * 获取手机验证码 * @@ -42,17 +41,6 @@ interface OchCommonServiceApiNew { Observable gotoLoginBycode4Taxi(@Header("appId") String appId , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); - /** - * 通过验证码登录 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startOperation" ) - Observable gotoLoginBycode4Bus(@Header("appId") String appId - , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); /** * 登出接口 */ @@ -60,13 +48,6 @@ interface OchCommonServiceApiNew { @POST("/autopilot-car-hailing/cab/flow/v1/driver/taxi/endOperation") Observable logout4Taxi(@Header("appId") String appId, @Header("ticket") String ticket, @Body TaxiLogoutReqBean data); - /** - * 登出接口 - */ - @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endOperation") - Observable logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket, - @Body TaxiLogoutReqBean data); /** * 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端 @@ -74,8 +55,8 @@ interface OchCommonServiceApiNew { * @return */ @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @GET( "/autopilot-car-hailing/operation/v1/driver/{flavor}/loginStatus") - Observable queryDriverServiceStatusAndLoginStatus(@Path(value = "flavor",encoded = true) String flavor,@Header ("appId") String appId + @GET( "/autopilot-car-hailing/operation/v1/driver/taxi/loginStatus") + Observable queryDriverServiceStatusAndLoginStatus(@Header ("appId") String appId , @Header("ticket") String ticket, @Query("sn") String sn); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index 2fb5dbf217..bf849e2779 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -26,6 +26,7 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.bean.OrderQueryRespBean; import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean; import com.mogo.och.taxi.model.TaxiModel; +import com.mogo.och.taxi.network.LoginBusImpl; import com.mogo.och.taxi.presenter.TaxiPresenter; import com.mogo.och.taxi.utils.TPRouteDataTestUtils; @@ -67,7 +68,7 @@ public class TaxiFragment extends BaseTaxiTabFragment