From 2c2fb65d1e408fef5aadb5caed56f36c200dde8b Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 30 Mar 2023 10:54:59 +0800 Subject: [PATCH 1/5] =?UTF-8?q?[opt]=20=E5=8F=B8=E4=B9=98=E5=BC=B1?= =?UTF-8?q?=E7=BD=91=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OCH/mogo-och-common-module/build.gradle | 2 + .../och/common/module/bean/AppConnectMsg.kt | 6 +- .../och/common/module/bean/dpmsg/DPMsgType.kt | 3 +- .../och/common/module/utils/DateTimeUtil.java | 9 + OCH/mogo-och-data/.gitignore | 1 + OCH/mogo-och-data/build.gradle | 46 ++++ OCH/mogo-och-data/consumer-rules.pro | 0 OCH/mogo-och-data/proguard-rules.pro | 21 ++ .../mogo/och/data/ExampleInstrumentedTest.kt | 24 +++ .../src/main/AndroidManifest.xml | 5 + .../com/mogo/och/data/bean/BusCacheData.kt | 12 ++ .../mogo/och/data}/bean/BusRoutesResult.java | 24 ++- .../mogo/och/data}/bean/BusStationBean.java | 2 +- .../data/manager/cache/CacheDataManager.kt | 28 +++ .../java/com/mogo/och/data/ExampleUnitTest.kt | 17 ++ OCH/mogo-och-shuttle-passenger/build.gradle | 1 + .../BusPassengerLineStationsAdapter.java | 9 +- .../bean/BusPassengerRoutesResponse.java | 7 +- .../bean/BusPassengerRoutesResult.java | 6 + .../IBusPassengerRouteLineInfoCallback.java | 4 +- .../passenger/model/BusPassengerModel.java | 97 +++++++-- .../presenter/BaseBusPassengerPresenter.java | 3 +- .../ui/BusPassengerRouteFragment.java | 7 +- OCH/mogo-och-shuttle/build.gradle | 1 + .../och/bus/bean/BusCloseTaskRequest.java | 3 + .../bus/bean/BusResetDrivingLineRequest.java | 3 + .../mogo/och/bus/bean/BusRoutesResponse.java | 1 + .../bus/bean/BusUpdateSiteStatusRequest.java | 3 + .../callback/IRefreshBusStationsCallback.java | 2 +- .../och/bus/fragment/BaseBusTabFragment.java | 4 +- .../mogo/och/bus/fragment/BusFragment.java | 2 +- .../com/mogo/och/bus/model/OrderModel.java | 200 +++++++++++++----- .../mogo/och/bus/presenter/BusPresenter.java | 5 +- .../och/bus/util/BusTrajectoryManager.java | 3 +- settings.gradle | 1 + 35 files changed, 455 insertions(+), 107 deletions(-) create mode 100644 OCH/mogo-och-data/.gitignore create mode 100644 OCH/mogo-och-data/build.gradle create mode 100644 OCH/mogo-och-data/consumer-rules.pro create mode 100644 OCH/mogo-och-data/proguard-rules.pro create mode 100644 OCH/mogo-och-data/src/androidTest/java/com/mogo/och/data/ExampleInstrumentedTest.kt create mode 100644 OCH/mogo-och-data/src/main/AndroidManifest.xml create mode 100644 OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt rename OCH/{mogo-och-shuttle/src/main/java/com/mogo/och/bus => mogo-och-data/src/main/java/com/mogo/och/data}/bean/BusRoutesResult.java (82%) rename OCH/{mogo-och-shuttle/src/main/java/com/mogo/och/bus => mogo-och-data/src/main/java/com/mogo/och/data}/bean/BusStationBean.java (98%) create mode 100644 OCH/mogo-och-data/src/main/java/com/mogo/och/data/manager/cache/CacheDataManager.kt create mode 100644 OCH/mogo-och-data/src/test/java/com/mogo/och/data/ExampleUnitTest.kt diff --git a/OCH/mogo-och-common-module/build.gradle b/OCH/mogo-och-common-module/build.gradle index 24b27d9db3..7459240da0 100644 --- a/OCH/mogo-och-common-module/build.gradle +++ b/OCH/mogo-och-common-module/build.gradle @@ -57,6 +57,8 @@ dependencies { implementation rootProject.ext.dependencies.arouter kapt rootProject.ext.dependencies.aroutercompiler + api project(":OCH:mogo-och-data") + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { api rootProject.ext.dependencies.mogoutils api rootProject.ext.dependencies.mogocommons diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt index 402557066e..2f01265325 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt @@ -1,7 +1,11 @@ package com.mogo.och.common.module.bean +import com.mogo.och.common.module.bean.dpmsg.DPMsgType + /** * @author: wangmingjun * @date: 2023/2/14 */ -data class AppConnectMsg(var isViewShow: Boolean,var isPlay: Boolean,var msg: String) +data class AppConnectMsg(var isViewShow: Boolean,var isPlay: Boolean,var msg: String + ,var type:Int = DPMsgType.TYPE_COMMON.type +) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt index 40f54f7cad..aff4fe49c2 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt @@ -8,5 +8,6 @@ enum class DPMsgType(val type: Int) { TYPE_COMMON(0), //常规 TYPE_CHANGE_DEST(1),// 变更目的地确认 TYPE_OPEN_CLOSE_DOOR(2),//开关门 - TYPE_ORDER_CLOSED(3) // 订单结束 + TYPE_ORDER_CLOSED(3), // 订单结束 + TYPE_TASK_DETAILS(4) //路线任务详情 } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java index 5b167a38e8..37550ad892 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java @@ -5,6 +5,7 @@ import com.mogo.eagle.core.utilcode.util.DateTimeUtils; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; +import java.util.TimeZone; /** * @author: wangmingjun @@ -101,4 +102,12 @@ public class DateTimeUtil { public static long getCurrentTimeStamp(){ return System.currentTimeMillis(); } + + public static long getTodayStartTime(){ + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + return calendar.getTimeInMillis(); + } } diff --git a/OCH/mogo-och-data/.gitignore b/OCH/mogo-och-data/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/OCH/mogo-och-data/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/OCH/mogo-och-data/build.gradle b/OCH/mogo-och-data/build.gradle new file mode 100644 index 0000000000..7dfccbfa8d --- /dev/null +++ b/OCH/mogo-och-data/build.gradle @@ -0,0 +1,46 @@ +plugins { + id 'com.android.library' + id 'org.jetbrains.kotlin.android' +} + +android { + compileSdkVersion 31 + + defaultConfig { + minSdkVersion 23 + targetSdkVersion 31 + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles "consumer-rules.pro" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.7.0' + implementation 'androidx.appcompat:appcompat:1.3.0' + implementation 'com.google.android.material:material:1.4.0' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { + api rootProject.ext.dependencies.mogoutils + }else { + api project(":core:mogo-core-utils") + } +} \ No newline at end of file diff --git a/OCH/mogo-och-data/consumer-rules.pro b/OCH/mogo-och-data/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/OCH/mogo-och-data/proguard-rules.pro b/OCH/mogo-och-data/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/OCH/mogo-och-data/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/OCH/mogo-och-data/src/androidTest/java/com/mogo/och/data/ExampleInstrumentedTest.kt b/OCH/mogo-och-data/src/androidTest/java/com/mogo/och/data/ExampleInstrumentedTest.kt new file mode 100644 index 0000000000..673a5dcfd3 --- /dev/null +++ b/OCH/mogo-och-data/src/androidTest/java/com/mogo/och/data/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.mogo.och.data + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.mogo.och.data.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/OCH/mogo-och-data/src/main/AndroidManifest.xml b/OCH/mogo-och-data/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..28c226d0dd --- /dev/null +++ b/OCH/mogo-och-data/src/main/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt new file mode 100644 index 0000000000..eee7b42d53 --- /dev/null +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt @@ -0,0 +1,12 @@ +package com.mogo.och.data.bean + +/** + * @author: wangmingjun + * @date: 2023/3/27 + */ + +object BusCacheKey{ + const val BUS_LINE_CACHE = "bus_line_cache" +} + +data class LoginCacheStatus(var login: Boolean,var updateTime: Long) \ No newline at end of file diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java similarity index 82% rename from OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java rename to OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java index 4b652d30df..b8aa437b06 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.data.bean; import java.util.List; @@ -16,6 +16,8 @@ public class BusRoutesResult { private int status; private long taskTime; //线路时间班次 private int taskId;// 线路班次id + private String runningDur; //运营时间 + private long writeVersion; //更新时间戳 //线路轨迹相关字段 public String csvFileUrl = ""; //轨迹文件下载的cos url,默认“” @@ -30,6 +32,14 @@ public class BusRoutesResult { public String txtFileMd5DPQP = ""; //轨迹文件md5,默认“” public long contrailSaveTimeDPQP; //上传轨迹完成时间戳ms:用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖 + public String getRunningDur() { + return runningDur; + } + + public void setRunningDur(String runningDur) { + this.runningDur = runningDur; + } + public int getLineId() { return lineId; } @@ -54,16 +64,26 @@ public class BusRoutesResult { return taskTime; } + public long getWriteVersion() { + return writeVersion; + } + + public void setWriteVersion(long writeVersion) { + this.writeVersion = writeVersion; + } + @Override public String toString() { return "BusRoutesResult{" + "sites=" + sites + ", lineId=" + lineId + ", name='" + name + '\'' + - ", taskTime='" + taskTime + '\'' + ", lineType=" + lineType + ", description='" + description + '\'' + ", status=" + status + + ", taskTime=" + taskTime + + ", taskId=" + taskId + + ", writeVersion=" + writeVersion + ", csvFileUrl='" + csvFileUrl + '\'' + ", csvFileMd5='" + csvFileMd5 + '\'' + ", txtFileUrl='" + txtFileUrl + '\'' + diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusStationBean.java similarity index 98% rename from OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java rename to OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusStationBean.java index 304e99b5c3..3e04f4183d 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusStationBean.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.data.bean; /** * 单个网约车小巴车站信息 diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/manager/cache/CacheDataManager.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/manager/cache/CacheDataManager.kt new file mode 100644 index 0000000000..ee6df51dd7 --- /dev/null +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/manager/cache/CacheDataManager.kt @@ -0,0 +1,28 @@ +package com.mogo.och.data.manager.cache + +import android.content.Context +import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr + +/** + * @author: wangmingjun + * @date: 2023/3/27 + */ +class CacheDataManager private constructor(){ + companion object{ + val instance: CacheDataManager by lazy (mode = LazyThreadSafetyMode.SYNCHRONIZED) { + CacheDataManager() + } + } + + fun putCacheData(context: Context, key:String, jsonStr: String){ + SharedPrefsMgr.getInstance(context).putString(key,jsonStr) + } + + fun getCacheData(context: Context, key: String) : String{ + return SharedPrefsMgr.getInstance(context).getString(key) + } + + fun clearCacheData(context: Context, key: String){ + SharedPrefsMgr.getInstance(context).remove(key) + } +} \ No newline at end of file diff --git a/OCH/mogo-och-data/src/test/java/com/mogo/och/data/ExampleUnitTest.kt b/OCH/mogo-och-data/src/test/java/com/mogo/och/data/ExampleUnitTest.kt new file mode 100644 index 0000000000..294d55ae21 --- /dev/null +++ b/OCH/mogo-och-data/src/test/java/com/mogo/och/data/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.mogo.och.data + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/build.gradle b/OCH/mogo-och-shuttle-passenger/build.gradle index 0818ec952e..89f40de4af 100644 --- a/OCH/mogo-och-shuttle-passenger/build.gradle +++ b/OCH/mogo-och-shuttle-passenger/build.gradle @@ -74,6 +74,7 @@ dependencies { implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap implementation project(":OCH:mogo-och-common-module") +// implementation project(":OCH:mogo-och-data") compileOnly project(":libraries:mogo-map") implementation project(':core:mogo-core-res') testImplementation 'junit:junit:4.12' diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/adapter/BusPassengerLineStationsAdapter.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/adapter/BusPassengerLineStationsAdapter.java index 565372b4a9..7d462c954d 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/adapter/BusPassengerLineStationsAdapter.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/adapter/BusPassengerLineStationsAdapter.java @@ -16,6 +16,7 @@ import com.mogo.och.bus.passenger.R; import com.mogo.och.bus.passenger.bean.BusPassengerStation; import com.mogo.och.common.module.utils.BlinkAnimationUtil; import com.mogo.och.common.module.wigets.MarqueeTextView; +import com.mogo.och.data.bean.BusStationBean; import java.util.List; @@ -30,9 +31,9 @@ import static com.mogo.och.bus.passenger.constant.BusPassengerConst.STATION_STAT public class BusPassengerLineStationsAdapter extends RecyclerView.Adapter { private Context mContext; - private List mStations; + private List mStations; - public BusPassengerLineStationsAdapter(Context context, List stations){ + public BusPassengerLineStationsAdapter(Context context, List stations){ this.mContext = context; this.mStations = stations; } @@ -47,7 +48,7 @@ public class BusPassengerLineStationsAdapter extends RecyclerView.Adapter getSites() { return sites; @@ -46,6 +47,10 @@ public class BusPassengerRoutesResult { return runningDur; } + public long getWriteVersion() { + return writeVersion; + } + @Override public String toString() { return "BusPassengerRoutesResult{" + @@ -55,6 +60,7 @@ public class BusPassengerRoutesResult { ", lineType=" + lineType + ", description='" + description + '\'' + ", status=" + status + + ", writeVersion="+ writeVersion+ ", runningDur='" + runningDur + '\'' + '}'; } diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/callback/IBusPassengerRouteLineInfoCallback.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/callback/IBusPassengerRouteLineInfoCallback.java index b7d348a2b2..caf252a64e 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/callback/IBusPassengerRouteLineInfoCallback.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/callback/IBusPassengerRouteLineInfoCallback.java @@ -1,6 +1,6 @@ package com.mogo.och.bus.passenger.callback; -import com.mogo.och.bus.passenger.bean.BusPassengerStation; +import com.mogo.och.data.bean.BusStationBean; import java.util.List; @@ -10,7 +10,7 @@ import java.util.List; */ public interface IBusPassengerRouteLineInfoCallback { void updateLineInfo(String lineName, String lineDurTime); - void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived); + void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived); void showNoTaskView(); void hideNoTaskView(); } diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 3e013fef4f..8be336ca13 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -20,6 +20,17 @@ import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; +import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant; +import com.mogo.eagle.core.utilcode.util.GsonUtils; +import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResponse; +import com.mogo.och.common.module.bean.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; +import com.mogo.och.common.module.biz.constant.OchCommonConst; +import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.commons.module.status.StatusDescriptor; import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; @@ -39,9 +50,6 @@ import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.och.bus.passenger.R; import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse; -import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResponse; -import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResult; -import com.mogo.och.bus.passenger.bean.BusPassengerStation; import com.mogo.och.bus.passenger.callback.IBusPassegerDriverStatusCallback; import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback; import com.mogo.och.bus.passenger.callback.IBusPassengerAutopilotPlanningCallback; @@ -53,6 +61,8 @@ import com.mogo.och.bus.passenger.network.BusPassengerServiceManager; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; +import com.mogo.och.data.bean.BusRoutesResult; +import com.mogo.och.data.bean.BusStationBean; import org.jetbrains.annotations.NotNull; @@ -91,9 +101,9 @@ public class BusPassengerModel { private MogoLocation mLocation = null; - private BusPassengerRoutesResult routesResult = null; + private BusRoutesResult routesResult = null; - List mStations = new ArrayList<>(); + List mStations = new ArrayList<>(); private int mNextStationIndex = 0;// 要到达站的index private List mTwoStationsRouts = new ArrayList<>(); private int mPreRouteIndex = 0; @@ -172,23 +182,19 @@ public class BusPassengerModel { public void onSuccess(BusPassengerRoutesResponse data) { if ( data == null || data.getResult() == null) { CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = null"); - if (routesResult != null) { - routesResult = null; - mNextStationIndex = 0; - startOrStopCalculateRouteInfo(false); - if (mRouteLineInfoCallback != null){ - mRouteLineInfoCallback.showNoTaskView(); - } - } - + clearLocalRouteResult(); return; } if (routesResult != null && data.getResult().equals(routesResult)){ CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = not update"); return; } - routesResult = data.getResult(); - updatePassengerRouteInfo(data.getResult()); + + if (routesResult != null && + routesResult.getWriteVersion() < data.getResult().getWriteVersion()){ + routesResult = data.getResult(); + } + updatePassengerRouteInfo(routesResult); } @Override @@ -211,16 +217,29 @@ public class BusPassengerModel { }); } - private void updatePassengerRouteInfo(BusPassengerRoutesResult result) { + private void clearLocalRouteResult() { + if (routesResult != null) { + routesResult = null; + mNextStationIndex = 0; + startOrStopCalculateRouteInfo(false); + if (mRouteLineInfoCallback != null){ + mRouteLineInfoCallback.showNoTaskView(); + } + } + } + + private void updatePassengerRouteInfo(BusRoutesResult result) { + if (routesResult == null) return; + if (mRouteLineInfoCallback != null){ mRouteLineInfoCallback.updateLineInfo(result.getName(),result.getRunningDur()); mRouteLineInfoCallback.hideNoTaskView(); if (result.getSites() != null){ - List stations = result.getSites(); + List stations = result.getSites(); mStations.clear(); mStations.addAll(stations); for (int i = 0; i< stations.size(); i++){ - BusPassengerStation station = stations.get(i); + BusStationBean station = stations.get(i); if (station.getDrivingStatus() == STATION_STATUS_STOPPED && station.isLeaving() && i+1 < stations.size()){ mRouteLineInfoCallback.updateStationsInfo(stations,i+1,false); if(mNextStationIndex != i+1){ @@ -283,6 +302,9 @@ public class BusPassengerModel { //2021.11.1 自动驾驶路线规划接口 CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener); + //监听司机端消息 + CallerTelematicListenerManager.INSTANCE.addListener(TAG,mReceivedMsgListener); + AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); } @@ -299,8 +321,39 @@ public class BusPassengerModel { CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); + + CallerTelematicListenerManager.INSTANCE.removeListener(TAG); } + private final IReceivedMsgListener mReceivedMsgListener = new IReceivedMsgListener() { + @Override + public void onReceivedMsg(int type, @NonNull byte[] byteArray) { + if (OchCommonConst.BUSINESS_STRING == type){ + + AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); + Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)); + if (msg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()){ + if (msg.getMsg().isEmpty()){ + clearLocalRouteResult(); + return; + } + BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(),BusRoutesResult.class); + if (result.getWriteVersion() > routesResult.getWriteVersion()){ + routesResult = result; + updatePassengerRouteInfo(routesResult); + } + return; + } + if (msg.isViewShow()){ //消息盒子显示内容 + OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( + DateTimeUtil.getCurrentTimeStamp(),msg.getMsg(), + OCHSocketMessageManager.OPERATION_SYSTEM); + } + } + } + }; + + //监听网络变化,避免启动机器时无网导致无法更新订单信息 private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() { @Override @@ -437,8 +490,8 @@ public class BusPassengerModel { if (mStations.size() > 1){ //两个站点及以上要计算两个站点间的轨迹路线 if (mNextStationIndex <= mStations.size()-1 && mNextStationIndex - 1 >=0){ mTwoStationsRouts.clear(); - BusPassengerStation stationNext = mStations.get(mNextStationIndex); - BusPassengerStation stationCur = mStations.get(mNextStationIndex - 1); + BusStationBean stationNext = mStations.get(mNextStationIndex); + BusStationBean stationCur = mStations.get(mNextStationIndex - 1); //当前站在轨迹中对应的点 int currentRouteIndex = CoordinateCalculateRouteUtil.getArrivedPointIndexNew(0 ,mRoutePoints @@ -487,7 +540,7 @@ public class BusPassengerModel { float lastSumLength = 0; if (lastPoints.size() == 1){ //只是最后一个点,计算当前位置和最后一个点的距离 if (mNextStationIndex <= mStations.size()-1 && mNextStationIndex >= 0){ - BusPassengerStation stationNext = mStations.get(mNextStationIndex); + BusStationBean stationNext = mStations.get(mNextStationIndex); lastSumLength = CoordinateUtils.calculateLineDistance( stationNext.getGcjLon(), stationNext.getGcjLat(), mLocation.getLongitude(), mLocation.getLatitude()); diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java index 0373dbc61b..a40cebf641 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java @@ -22,6 +22,7 @@ import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback import com.mogo.och.bus.passenger.callback.IBusPassengerRouteLineInfoCallback; import com.mogo.och.bus.passenger.model.BusPassengerModel; import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment; +import com.mogo.och.data.bean.BusStationBean; import java.util.List; @@ -131,7 +132,7 @@ public class BaseBusPassengerPresenter extends Presenter stations,int currentStationIndex,boolean isArrived) { + public void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived) { runOnUIThread(() -> mView.updateStationsInfo(stations,currentStationIndex, isArrived)); } diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java index 9d7393f968..2a7875dc40 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java @@ -28,6 +28,7 @@ import com.mogo.och.bus.passenger.presenter.BaseBusPassengerPresenter; import com.mogo.och.bus.passenger.ui.layoutmanager.CenterLayoutManager; import com.mogo.och.bus.passenger.utils.BPRouteDataTestUtils; import com.mogo.och.common.module.wigets.MarqueeTextView; +import com.mogo.och.data.bean.BusStationBean; import java.util.ArrayList; import java.util.List; @@ -42,7 +43,7 @@ public class BusPassengerRouteFragment extends private final String TAG = "BusPassengerRouteFragment"; - private final List mStationsList = new ArrayList<>(); + private final List mStationsList = new ArrayList<>(); private TextView mSpeedTv; private ConstraintLayout mNoLineInfoView; @@ -236,7 +237,7 @@ public class BusPassengerRouteFragment extends * @param currentStationIndex * @param isArrived 是否到站并离开,true 到达当前站 currentStationIndex 未离开, false 正在前往此站 currentStationIndex */ - public void updateStationsInfo(List stations, int currentStationIndex,boolean isArrived) { + public void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived) { updateArrivedStation(stations.get(currentStationIndex).getName(),currentStationIndex,isArrived); mStationsList.clear(); mStationsList.addAll(stations); @@ -257,7 +258,7 @@ public class BusPassengerRouteFragment extends } } - private void updateWayPointList(List stations,int currentStationIndex) { + private void updateWayPointList(List stations,int currentStationIndex) { List mLineStationsList = new ArrayList<>(); for (int i = 0; i< stations.size(); i++) {//站点集合 // LatLng latLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(getContext() diff --git a/OCH/mogo-och-shuttle/build.gradle b/OCH/mogo-och-shuttle/build.gradle index 1d06e3b890..f3e7989e2f 100644 --- a/OCH/mogo-och-shuttle/build.gradle +++ b/OCH/mogo-och-shuttle/build.gradle @@ -56,6 +56,7 @@ dependencies { compileOnly rootProject.ext.dependencies.recyclerviewadapterhelper implementation project(":OCH:mogo-och-common-module") + implementation project(":OCH:mogo-och-data") compileOnly project(":libraries:mogo-map") } diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java index d8a11924af..010c5812d0 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.bean; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.och.common.module.utils.DateTimeUtil; /** * 中止/结束任务请求 @@ -9,9 +10,11 @@ public class BusCloseTaskRequest { private String sn; private int taskId; + private long writeVersion; public BusCloseTaskRequest(int taskId) { this.sn = MoGoAiCloudClientConfig.getInstance().getSn(); this.taskId = taskId; + this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); } public String getSn() { diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java index 7de15dae2c..ed3aa1a8e8 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.bean; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.och.common.module.utils.DateTimeUtil; /** * @author: wangmingjun @@ -9,9 +10,11 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig; public class BusResetDrivingLineRequest { public String sn; public int taskId; //切换到的线路id + public long writeVersion; //更新时间戳 public BusResetDrivingLineRequest(int taskId) { this.sn = MoGoAiCloudClientConfig.getInstance().getSn(); this.taskId = taskId; + this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); } } diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java index 2c9bad3e3c..39d43217af 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.bean; import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.data.bean.BusRoutesResult; /** * 网约车小巴路线接口请求响应结果 diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java index 93ff4b5457..5affa4b9ac 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.bean; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.och.common.module.utils.DateTimeUtil; /** * @author congtaowang @@ -14,11 +15,13 @@ public class BusUpdateSiteStatusRequest { public int taskId; public int seq;//站点序号 public int siteId;//站点id + public long writeVersion; //更新时间戳 public BusUpdateSiteStatusRequest(int taskId,int siteId,int seq) { this.sn = MoGoAiCloudClientConfig.getInstance().getSn(); this.seq = seq; this.siteId = siteId; this.taskId = taskId; + this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); } } diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java index 95292ef6a6..4f28bf76b9 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java @@ -1,6 +1,6 @@ package com.mogo.och.bus.callback; -import com.mogo.och.bus.bean.BusStationBean; +import com.mogo.och.data.bean.BusStationBean; import java.util.List; diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index 59820ddffe..6c353544a0 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -36,16 +36,14 @@ import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxListView; import com.mogo.eagle.core.function.hmi.ui.widget.TrafficDataView; import com.mogo.eagle.core.function.smp.view.SmallMapView; import com.mogo.eagle.core.function.view.MapBizView; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.MogoMapUIController; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.listener.MogoMapListenerHandler; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.VisualAngleMode; import com.mogo.och.bus.R; -import com.mogo.och.bus.bean.BusRoutesResult; +import com.mogo.och.data.bean.BusRoutesResult; import com.mogo.och.bus.model.OrderModel; import com.mogo.och.bus.util.BDRouteDataTestUtils; import com.mogo.och.bus.view.SlidePanelView; diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index cd85e7eaa1..ee7f0674d7 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -25,7 +25,7 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.och.bus.R; -import com.mogo.och.bus.bean.BusStationBean; +import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.bus.constant.BusConst; import com.mogo.och.bus.net.login.LoginBusImpl; import com.mogo.och.bus.presenter.BusPresenter; diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java index 1eaef27632..4a64951a9a 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -26,7 +26,8 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.och.bus.bean.BusRoutesResponse; -import com.mogo.och.bus.bean.BusStationBean; +import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.common.module.biz.common.socketmessage.data.SystemMsg; import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; @@ -44,7 +45,7 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.bus.R; import com.mogo.och.bus.bean.BusRoutePlanningUpdateReqBean; -import com.mogo.och.bus.bean.BusRoutesResult; +import com.mogo.och.data.bean.BusRoutesResult; import com.mogo.och.bus.bean.WriteOffPassenger; import com.mogo.och.bus.callback.IBusADASStatusCallback; import com.mogo.och.bus.callback.IBusControllerStatusCallback; @@ -67,9 +68,10 @@ import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; -import com.mogo.och.common.module.utils.ToastUtilsOch; import com.mogo.och.common.module.voice.VoiceManager; import com.mogo.och.common.module.voice.VoiceNotice; +import com.mogo.och.data.bean.BusCacheKey; +import com.mogo.och.data.manager.cache.CacheDataManager; import org.jetbrains.annotations.NotNull; @@ -236,7 +238,7 @@ public class OrderModel { } if (list != null && list.contains(2)){ //乘客屏 - AppConnectMsg msg = new AppConnectMsg(true,false,obj.getContext()); + AppConnectMsg msg = new AppConnectMsg(true,false,obj.getContext(),DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(msg).getBytes()); } @@ -402,6 +404,31 @@ public class OrderModel { } } + public void queryBusCacheRoutes(){ + String cacheData = CacheDataManager.Companion.getInstance().getCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE); + if (cacheData == null || cacheData.isEmpty()){ + queryBusRoutes(); + }else { + BusRoutesResult data = GsonUtils.fromJson(cacheData,BusRoutesResult.class); + getCacheRouteSuccess(data); + } + + } + + private void getCacheRouteSuccess(BusRoutesResult data){ + if (data == null || data.getSites() == null + || data.getSites().isEmpty() + || data.getWriteVersion() < DateTimeUtil.getTodayStartTime()) { + //当为空时,显示无绑定路线图 + queryBusRoutes(); + CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE); + return; + } + CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据: " + GsonUtils.toJson(data)); + updateBusStatus(data); + } + /** * 查询小巴路线 */ @@ -414,19 +441,27 @@ public class OrderModel { || data.getResult() == null || data.getResult().getSites() == null || data.getResult().getSites().isEmpty()) { - //当为空时,显示无绑定路线图 - CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据:空 "); - if (refreshBusStationsCallback != null) { - refreshBusStationsCallback.updateEmptyUi(); - } - clearAutopilotControlParameters(); - closeBeautificationMode(); - clearStartAutopilotTag(); - removeTipRunnables(); +// //当为空时,显示无绑定路线图 +// CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据:空 "); +// if (refreshBusStationsCallback != null) { +// refreshBusStationsCallback.updateEmptyUi(); +// } +// clearAutopilotControlParameters(); +// closeBeautificationMode(); +// clearStartAutopilotTag(); +// removeTipRunnables(); + CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LINE_CACHE); return; } - CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据: " + data); - updateBusStatus(data.getResult()); + + if (busRoutesResult != null && busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){ + CallerLogger.INSTANCE.d(M_BUS + TAG, "更新小巴路线数据: " + data); +// updateBusStatus(data.getResult()); + CacheDataManager.Companion.getInstance().putCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE, + GsonUtils.toJson(data.getResult())); + } + } @@ -559,6 +594,11 @@ public class OrderModel { , "" , false); } + + CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE); + busRoutesResult = null; + + sendTaskDetailsToClients(); } /** @@ -586,6 +626,30 @@ public class OrderModel { , nextStation , isLastStop); } + + reBuildCacheRouteData(leaveIndex,BusConst.STATION_STATUS_STOPPED,true); + } + + private void reBuildCacheRouteData(int currentIndex, int currentDrivingStatus, boolean isLeaving) { + if (busRoutesResult != null){ + busRoutesResult.setWriteVersion(DateTimeUtil.getCurrentTimeStamp()); + List sites = busRoutesResult.getSites(); + BusStationBean bean = sites.get(currentIndex); + bean.setDrivingStatus(currentDrivingStatus); + bean.setLeaving(isLeaving); + sites.set(currentIndex,bean); + if (currentDrivingStatus == STATION_STATUS_STOPPED && !isLeaving){ + BusStationBean beanPre = sites.get(currentIndex -1); + beanPre.setDrivingStatus(BusConst.STATION_STATUS_LEAVING); + beanPre.setLeaving(false); + sites.set(currentIndex -1,beanPre); + } + busRoutesResult.setSite(sites); + CacheDataManager.Companion.getInstance().putCacheData(mContext, BusCacheKey.BUS_LINE_CACHE, + GsonUtils.toJson(busRoutesResult)); + + sendTaskDetailsToClients(); + } } private void onStartAutopilot(int leaveIndex) { @@ -647,6 +711,10 @@ public class OrderModel { String departureStopName = stationList.get(backgroundCurrentStationIndex).getName(); CallerLogger.INSTANCE.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex); + isArrivedStation = true; + isGoingToNextStation = false; + arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); + OrderServiceManager.arriveSiteStation(mContext, stationList.get(arrivedStationIndex).getSeq(), stationList.get(arrivedStationIndex).getSiteId(), @@ -655,35 +723,35 @@ public class OrderModel { @Override public void onSuccess(BaseData o) { CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-arriveSiteStation success"); - if (o != null && o.code == 0){ - queryBusRoutes(); - isArrivedStation = true; - isGoingToNextStation = false; - arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); - } +// if (o != null && o.code == 0){ +// queryBusRoutes(); +// isArrivedStation = true; +// isGoingToNextStation = false; +// arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); +// } //5s轮询核销乘客 // startOrStopQueryPassengerWriteOff(true); } @Override public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } +// if (!NetworkUtils.isConnected(mContext)) { +// ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); +// } else { +// ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); +// } } @Override public void onFail(int code, String failMsg) { - if (ToastUtilsOch.isCustomFastClick(5000)) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - } else { - if (isArrivedStation) return; - ToastUtils.showShort(failMsg); - } - } +// if (ToastUtilsOch.isCustomFastClick(5000)) { +// if (!NetworkUtils.isConnected(mContext)) { +// ToastUtils.showShort("网络异常,请稍后重试"); +// } else { +// if (isArrivedStation) return; +// ToastUtils.showShort(failMsg); +// } +// } } }); } @@ -705,12 +773,22 @@ public class OrderModel { VoiceManager.INSTANCE.arrivedStation(arriveStation); sendArrivedStationToClient(arriveStation); + + reBuildCacheRouteData(arrivedStationIndex, BusConst.STATION_STATUS_STOPPED,false); + } + + private void sendTaskDetailsToClients() { + AppConnectMsg arrivedMsg = new AppConnectMsg(false,false,String.format(mContext + .getString(R.string.bus_arrived_station_tip), + GsonUtils.toJson(busRoutesResult)), DPMsgType.TYPE_TASK_DETAILS.getType()); + CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()); } private void sendArrivedStationToClient(String arriveStation) { AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_arrived_station_tip), - arriveStation)); + arriveStation),DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); } @@ -718,23 +796,24 @@ public class OrderModel { private void sendStartStationToClient(String nextStation) { AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_leave_station_tip), - nextStation)); - UiThreadHandler.postDelayed(()->{ - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); - },DELAY_10S); + nextStation),DPMsgType.TYPE_COMMON.getType()); + + UiThreadHandler.postDelayed(()-> + CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()),DELAY_10S); } private void sendEndTaskToClient() { AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,mContext - .getString(R.string.bus_end_task_tip)); + .getString(R.string.bus_end_task_tip), + DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); } public void sendWriteOffNumToClient(String msg){ - AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,msg); + AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,msg,DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); @@ -751,6 +830,11 @@ public class OrderModel { } final String currentStationName = stationList.get(backgroundCurrentStationIndex).getName(); String finalNextStationName = nextStationName; + + isArrivedStation = false; + CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); + leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName); + OrderServiceManager.leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq(), stationList.get(backgroundCurrentStationIndex).getSiteId(), @@ -758,31 +842,31 @@ public class OrderModel { new OchCommonServiceCallback() { @Override public void onSuccess(BaseData o) { - isArrivedStation = false; - CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); - //需要更改当前站和下一站的状态 然后渲染 - //startOrStopQueryPassengerWriteOff(false); - queryBusRoutes(); - leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName); +// isArrivedStation = false; +// CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); +// //需要更改当前站和下一站的状态 然后渲染 +// //startOrStopQueryPassengerWriteOff(false); +// queryBusRoutes(); +// leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName); } @Override public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } +// if (!NetworkUtils.isConnected(mContext)) { +// ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); +// } else { +// ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); +// } } @Override public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - } else { - ToastUtils.showShort("离站上报失败:" + failMsg); - } +// if (!NetworkUtils.isConnected(mContext)) { +// ToastUtils.showShort("网络异常,请稍后重试"); +// } else { +// ToastUtils.showShort("离站上报失败:" + failMsg); +// } } }); } diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index 3e97df4a91..d1396089b7 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -18,7 +18,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.bus.bean.BusStationBean; +import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.bus.bean.WriteOffPassenger; import com.mogo.och.bus.callback.IBusADASStatusCallback; import com.mogo.och.bus.callback.IBusControllerStatusCallback; @@ -308,7 +308,8 @@ public class BusPresenter extends Presenter CallerLogger.INSTANCE.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); if(LoginStatusManager.isLogin()){ OrderModel.getInstance().startOrStopOrderLoop(true); - OrderModel.getInstance().queryBusRoutes(); +// OrderModel.getInstance().queryBusRoutes(); + OrderModel.getInstance().queryBusCacheRoutes(); }else { BusTrajectoryManager.getInstance().stopTrajReqLoop(); OrderModel.getInstance().startOrStopOrderLoop(false); diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java index 6cf6eb90c4..aafcea35ee 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java @@ -6,11 +6,10 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.GsonUtils; -import com.mogo.och.bus.bean.BusRoutesResult; +import com.mogo.och.data.bean.BusRoutesResult; import com.mogo.och.bus.constant.BusConst; import com.mogo.och.bus.model.OrderModel; import com.mogo.och.common.module.biz.constant.LoginStatusManager; -import com.zhidao.socket.utils.LoginStatusUtil; import java.util.concurrent.TimeUnit; diff --git a/settings.gradle b/settings.gradle index 84bd6f8517..c52260c59e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -68,3 +68,4 @@ include ':OCH:mogo-och-charter' include ':OCH:mogo-och-charter-passenger' include ':OCH:mogo-och-shuttle' include ':OCH:mogo-och-shuttle-passenger' +include ':OCH:mogo-och-data' From dec5d11208fd1cf63797cbdbf086e27c720749f7 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 30 Mar 2023 18:02:08 +0800 Subject: [PATCH 2/5] =?UTF-8?q?[opt]=20=E5=BC=B1=E7=BD=91=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/BusPassengerModel.java | 21 +++-- .../presenter/BusPassengerPresenter.kt | 5 +- .../och/bus/passenger/ui/view/LineSiteView.kt | 3 +- .../mogo/och/charter/model/DriverM1Model.kt | 3 + .../och/common/module/bean/AppConnectMsg.kt | 11 --- .../och/common/module/bean/dpmsg/BaseDPMsg.kt | 7 -- .../common/module/bean/dpmsg/ChangeDestMsg.kt | 15 ---- .../module/bean/dpmsg/DPCommonOperationMsg.kt | 9 -- .../och/common/module/bean/dpmsg/DPMsgType.kt | 3 +- .../module/bean/dpmsg/DPOperateDoorMsg.kt | 9 -- .../module/bean/dpmsg/DPOrderClosedMsg.kt | 9 -- .../och/common/module/bean/dpmsg/DataBean.kt | 47 ++++++++++ OCH/mogo-och-data/build.gradle | 12 +-- .../com/mogo/och/data/bean/BusCacheData.kt | 12 --- .../passenger/model/BusPassengerModel.java | 72 +++++++++++---- .../network/BusPassengerServiceManager.kt | 4 - .../com/mogo/och/bus/model/OrderModel.java | 90 ++++++++++++++----- 17 files changed, 198 insertions(+), 134 deletions(-) delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/BaseDPMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt delete mode 100644 OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index b1f1b0e000..5eee23fd2e 100644 --- a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -55,7 +55,10 @@ import com.mogo.och.bus.passenger.callback.IBusPassengerRouteLineInfoCallback; import com.mogo.och.bus.passenger.constant.BusPassengerConst; import com.mogo.och.bus.passenger.network.BusPassengerModelLoopManager; import com.mogo.och.bus.passenger.network.BusPassengerServiceManager; -import com.mogo.och.common.module.bean.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg; +import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus; import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; @@ -319,12 +322,16 @@ public class BusPassengerModel { public void onReceivedMsg(int type, @NonNull byte[] byteArray) { if (OchCommonConst.BUSINESS_STRING == type){ - AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); - Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)); - if (msg.isViewShow()){ //消息盒子显示内容 - OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( - DateTimeUtil.getCurrentTimeStamp(),msg.getMsg(), - OCHSocketMessageManager.OPERATION_SYSTEM); + BaseDPMsg baseMsg = GsonUtils.fromJson(new String(byteArray), BaseDPMsg.class); + Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(baseMsg)); + + if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_COMMON.getType()){ + AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); + if (msg.isViewShow()){ //消息盒子显示内容 + OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( + DateTimeUtil.getCurrentTimeStamp(),msg.getMsg(), + OCHSocketMessageManager.OPERATION_SYSTEM); + } } } } diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt index 683b36bbff..2fb96ad0f1 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt @@ -21,9 +21,6 @@ import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener import com.mogo.och.bus.passenger.model.OrderStatusEnum import com.mogo.och.bus.passenger.ui.MainFragment -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg -import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager import com.mogo.och.common.module.biz.constant.OchCommonConst @@ -33,6 +30,8 @@ import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.common.module.utils.SoundPoolHelper import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg +import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg import io.reactivex.disposables.Disposable import java.util.* diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt index 138d2c8079..9827035e87 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt @@ -25,17 +25,16 @@ import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.net.BusPassengerModelLoopManager import com.mogo.och.bus.passenger.net.BusPassengerServiceManager -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionDevicePresenter import com.mogo.och.bus.passenger.ui.M1ContainFragment import com.mogo.och.bus.passenger.ui.adapter.OrderLineItemAdapter import com.mogo.och.bus.passenger.ui.adapter.OrderSiteItemAdapter import com.mogo.och.bus.passenger.utils.RxUtils import com.mogo.och.bus.passenger.view.BottomDecoration -import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager +import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg import io.reactivex.disposables.Disposable import kotlinx.android.synthetic.m1.m1_order_lineside.view.* import me.jessyan.autosize.utils.AutoSizeUtils diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt index 3a99ad95a6..a5b304a113 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt @@ -52,6 +52,7 @@ import com.mogo.och.common.module.manager.CharterSendTripInfoManager.END_TRIP import com.mogo.och.common.module.manager.CharterSendTripInfoManager.START_TRIP import com.mogo.och.common.module.manager.OCHAdasAbilityManager import com.mogo.och.common.module.utils.* +import com.mogo.och.data.bean.* import io.reactivex.exceptions.UndeliverableException import io.reactivex.functions.Consumer import io.reactivex.plugins.RxJavaPlugins @@ -206,6 +207,8 @@ class DriverM1Model { OCHSocketMessageManager.msgWriteOffPassengerType ) stopLoopAbnormalFactors() + + CallerTelematicListenerManager.removeListener(TAG) } /** * 接收乘客屏发来确认信息 diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt deleted file mode 100644 index 2f01265325..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.mogo.och.common.module.bean - -import com.mogo.och.common.module.bean.dpmsg.DPMsgType - -/** - * @author: wangmingjun - * @date: 2023/2/14 - */ -data class AppConnectMsg(var isViewShow: Boolean,var isPlay: Boolean,var msg: String - ,var type:Int = DPMsgType.TYPE_COMMON.type -) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/BaseDPMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/BaseDPMsg.kt deleted file mode 100644 index ca7ead50d8..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/BaseDPMsg.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -open class BaseDPMsg(var type: Int) // 0: 常规 1:确认路线/站点 2:开/关车门 3:结束订单 \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt deleted file mode 100644 index d130f49741..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -data class ChangeDestMsg( - var lineId: Int, //线路id - var lineName: String = "", //线路名称 - var startSiteId: Int= 0, //当前站点 - var startSiteName: String = "", - var destSiteId: Int= 0, //目的地 - var destSiteName: String = "", - var isConfirmed: Boolean = false //司机端是否同意 -): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt deleted file mode 100644 index af7badf1fa..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -data class DPCommonOperationMsg( - var msg: String -): BaseDPMsg(DPMsgType.TYPE_COMMON.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt index aff4fe49c2..e47d5900fd 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt @@ -9,5 +9,6 @@ enum class DPMsgType(val type: Int) { TYPE_CHANGE_DEST(1),// 变更目的地确认 TYPE_OPEN_CLOSE_DOOR(2),//开关门 TYPE_ORDER_CLOSED(3), // 订单结束 - TYPE_TASK_DETAILS(4) //路线任务详情 + TYPE_TASK_DETAILS(4), //路线任务详情 + TYPE_LOGIN_STATUS(5) //login status } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt deleted file mode 100644 index 30a4f2c3b4..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -data class DPOperateDoorMsg( - var open: Boolean = false // true: 开门, false: 关门 -): BaseDPMsg(DPMsgType.TYPE_OPEN_CLOSE_DOOR.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt deleted file mode 100644 index 5785b9500b..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -data class DPOrderClosedMsg( - var closed: Boolean = true // true: 开门, false: 关门 -): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt new file mode 100644 index 0000000000..959b2ece21 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt @@ -0,0 +1,47 @@ +package com.mogo.och.common.module.bean.dpmsg +/** + * @author: wangmingjun + * @date: 2023/3/27 + */ + +object BusCacheKey{ + const val BUS_LINE_CACHE = "bus_line_cache" +} + +open class BaseDPMsg(open var type: Int) // 0: 常规 1:确认路线/站点 2:开/关车门 3:结束订单 + +data class LoginCacheStatus( + var loginStatus: Int, + var updateTime: Long + ): BaseDPMsg(DPMsgType.TYPE_LOGIN_STATUS.type) + +data class ChangeDestMsg( + var lineId: Int, //线路id + var lineName: String = "", //线路名称 + var startSiteId: Int= 0, //当前站点 + var startSiteName: String = "", + var destSiteId: Int= 0, //目的地 + var destSiteName: String = "", + var isConfirmed: Boolean = false //司机端是否同意 +): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) + +data class DPCommonOperationMsg( + var msg: String +): BaseDPMsg(DPMsgType.TYPE_COMMON.type) + +data class DPOperateDoorMsg( + var open: Boolean = false // true: 开门, false: 关门 +): BaseDPMsg(DPMsgType.TYPE_OPEN_CLOSE_DOOR.type) + +data class DPOrderClosedMsg( + var closed: Boolean = true // true: 开门, false: 关门 +): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type) + +data class AppConnectMsg(var isViewShow: Boolean, var isPlay: Boolean, var msg: String, + override var type: Int +): BaseDPMsg(type) + +data class TaskDetailsMsg( + var msg: String, + override var type: Int +): BaseDPMsg(type) diff --git a/OCH/mogo-och-data/build.gradle b/OCH/mogo-och-data/build.gradle index 7dfccbfa8d..ae2e1b8a34 100644 --- a/OCH/mogo-och-data/build.gradle +++ b/OCH/mogo-och-data/build.gradle @@ -31,12 +31,12 @@ android { dependencies { - implementation 'androidx.core:core-ktx:1.7.0' - implementation 'androidx.appcompat:appcompat:1.3.0' - implementation 'com.google.android.material:material:1.4.0' - testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.1.3' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + implementation fileTree(dir: "libs", include: ["*.jar"]) + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation rootProject.ext.dependencies.androidxccorektx + implementation rootProject.ext.dependencies.androidxappcompat + implementation rootProject.ext.dependencies.material + implementation rootProject.ext.dependencies.rxandroid if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { api rootProject.ext.dependencies.mogoutils diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt deleted file mode 100644 index eee7b42d53..0000000000 --- a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.mogo.och.data.bean - -/** - * @author: wangmingjun - * @date: 2023/3/27 - */ - -object BusCacheKey{ - const val BUS_LINE_CACHE = "bus_line_cache" -} - -data class LoginCacheStatus(var login: Boolean,var updateTime: Long) \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 8be336ca13..02fa2e6165 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -22,12 +22,19 @@ import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; 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.logger.Logger; import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant; import com.mogo.eagle.core.utilcode.util.GsonUtils; +import com.mogo.eagle.core.utilcode.util.ToastUtils; +import com.mogo.och.bus.passenger.R; +import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse; import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResponse; -import com.mogo.och.common.module.bean.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg; import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus; +import com.mogo.och.common.module.bean.dpmsg.TaskDetailsMsg; import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.och.common.module.utils.DateTimeUtil; @@ -47,9 +54,6 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.bus.passenger.R; -import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse; import com.mogo.och.bus.passenger.callback.IBusPassegerDriverStatusCallback; import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback; import com.mogo.och.bus.passenger.callback.IBusPassengerAutopilotPlanningCallback; @@ -127,11 +131,19 @@ public class BusPassengerModel { public void init( Context context ) { mContext = context.getApplicationContext(); initListeners(); - // TODO: 2022/3/31 queryDriverOperationStatus(); + queryDriverByLocalDriver(); startOrStopOrderLoop(true); } + private void queryDriverByLocalDriver() { + //本地去请求司机端 + AppConnectMsg msg = new AppConnectMsg(false,false,"", + DPMsgType.TYPE_TASK_DETAILS.getType()); + + sendMsgToServer(GsonUtils.toJson(msg)); + } + public void setDriverStatusCallback(IBusPassegerDriverStatusCallback callback){ this.mDriverStatusCallback = callback; } @@ -144,6 +156,13 @@ public class BusPassengerModel { handler.sendEmptyMessageDelayed( MSG_QUERY_BUS_P_STATION, QUERY_BUS_P_STATION_DELAY ); } + private void sendMsgToServer(String msg){ + CallerTelematicManager.INSTANCE.sendMsgToServer( + OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(msg).getBytes() + ); + } + private void queryDriverOperationStatus() { BusPassengerServiceManager.queryDriverOperationStatus(mContext , new OchCommonServiceCallback() { @@ -164,7 +183,7 @@ public class BusPassengerModel { } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } - queryDriverOperationDelay(); + queryDriverByLocalDriver(); } @Override @@ -194,6 +213,11 @@ public class BusPassengerModel { routesResult.getWriteVersion() < data.getResult().getWriteVersion()){ routesResult = data.getResult(); } + + if (routesResult == null){ + routesResult = data.getResult(); + } + updatePassengerRouteInfo(routesResult); } @@ -323,31 +347,41 @@ public class BusPassengerModel { AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); CallerTelematicListenerManager.INSTANCE.removeListener(TAG); + CallerTelematicListenerManager.INSTANCE.removeListener(TAG); } private final IReceivedMsgListener mReceivedMsgListener = new IReceivedMsgListener() { @Override public void onReceivedMsg(int type, @NonNull byte[] byteArray) { - if (OchCommonConst.BUSINESS_STRING == type){ + if (OchCommonConst.BUSINESS_STRING == type) { - AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); - Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)); - if (msg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()){ - if (msg.getMsg().isEmpty()){ + BaseDPMsg baseMsg = GsonUtils.fromJson(new String(byteArray), BaseDPMsg.class); + Logger.d(SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(baseMsg)); + + if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_COMMON.getType()) { + AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); + if (msg != null && msg.isViewShow()) { //消息盒子显示内容 + OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( + DateTimeUtil.getCurrentTimeStamp(), msg.getMsg(), + OCHSocketMessageManager.OPERATION_SYSTEM); + } + } else if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_LOGIN_STATUS.getType()) { + LoginCacheStatus msg = GsonUtils.fromJson(new String(byteArray), LoginCacheStatus.class); + if (msg != null) { + mDriverStatusCallback.changeOperationStatus(msg.getLoginStatus() == 1); + } + } else if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()) { + TaskDetailsMsg msg = GsonUtils.fromJson(new String(byteArray), TaskDetailsMsg.class); + Logger.d(SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(msg)); + if (msg == null || msg.getMsg().isEmpty()) { clearLocalRouteResult(); return; } - BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(),BusRoutesResult.class); - if (result.getWriteVersion() > routesResult.getWriteVersion()){ + BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(), BusRoutesResult.class); + if (result != null && result.getWriteVersion() > routesResult.getWriteVersion()) { routesResult = result; updatePassengerRouteInfo(routesResult); } - return; - } - if (msg.isViewShow()){ //消息盒子显示内容 - OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( - DateTimeUtil.getCurrentTimeStamp(),msg.getMsg(), - OCHSocketMessageManager.OPERATION_SYSTEM); } } } diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt index b868bd9994..ee038d1287 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt @@ -4,13 +4,9 @@ import android.content.Context import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.getServerToken import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResponse import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.och.bus.passenger.bean.BusPassengerQueryLineRequest import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.och.bus.passenger.constant.URLConst.Companion.getBaseUrl import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java index 10ee534561..54d969edc7 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -16,6 +16,8 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.IMogoStatusChangedListener; @@ -26,7 +28,12 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.och.bus.bean.BusRoutesResponse; +import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg; import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus; +import com.mogo.och.common.module.bean.dpmsg.TaskDetailsMsg; +import com.mogo.och.common.module.biz.constant.LoginStatusManager; import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.common.module.biz.common.socketmessage.data.SystemMsg; import com.mogo.och.common.module.biz.constant.OchCommonConst; @@ -57,7 +64,6 @@ import com.mogo.och.bus.net.OrderServiceManager; import com.mogo.och.bus.util.BusAnalyticsManager; import com.mogo.och.bus.util.BusSendTripInfoManager; import com.mogo.och.bus.util.BusTrajectoryManager; -import com.mogo.och.common.module.bean.AppConnectMsg; import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.biz.provider.LoginService; @@ -70,8 +76,9 @@ import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.common.module.voice.VoiceManager; import com.mogo.och.common.module.voice.VoiceNotice; -import com.mogo.och.data.bean.BusCacheKey; +import com.mogo.och.common.module.bean.dpmsg.BusCacheKey; import com.mogo.och.data.manager.cache.CacheDataManager; +import com.zhidao.socket.utils.LoginStatusUtil; import org.jetbrains.annotations.NotNull; @@ -177,6 +184,9 @@ public class OrderModel { AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); + //监听乘客屏发来的消息 + CallerTelematicListenerManager.INSTANCE.addListener(TAG,mReceivedMsgListener); + //2022.1.28 // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃 // The exception could not be delivered to the consumer because it has already canceled/disposed @@ -215,6 +225,23 @@ public class OrderModel { }); } + private final IReceivedMsgListener mReceivedMsgListener = + new IReceivedMsgListener() { + @Override + public void onReceivedMsg(int type, @NonNull byte[] byteArray) { + if (OchCommonConst.BUSINESS_STRING == type){ + BaseDPMsg msg = GsonUtils.fromJson(new String(byteArray),BaseDPMsg.class); + if (msg!=null && msg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()){ + if (LoginStatusUtil.isLogin()){ + sendTaskDetailsToClients(); + }else {// 未登陆 + sendLoginStatusToClient(); + } + } + } + } + }; + private final IMogoOnMessageListener mMogoOnMessageListener = new IMogoOnMessageListener() { @Override @@ -332,6 +359,8 @@ public class OrderModel { OCHSocketMessageManager.msgWriteOffPassengerType); AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); + //监听乘客屏发来的消息 + CallerTelematicListenerManager.INSTANCE.removeListener(TAG); } private Object readResolve() { @@ -442,14 +471,14 @@ public class OrderModel { || data.getResult().getSites() == null || data.getResult().getSites().isEmpty()) { // //当为空时,显示无绑定路线图 -// CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据:空 "); -// if (refreshBusStationsCallback != null) { -// refreshBusStationsCallback.updateEmptyUi(); -// } -// clearAutopilotControlParameters(); -// closeBeautificationMode(); -// clearStartAutopilotTag(); -// removeTipRunnables(); + CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据:空 "); + if (refreshBusStationsCallback != null) { + refreshBusStationsCallback.updateEmptyUi(); + } + clearAutopilotControlParameters(); + closeBeautificationMode(); + clearStartAutopilotTag(); + removeTipRunnables(); CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LINE_CACHE); return; } @@ -461,7 +490,12 @@ public class OrderModel { BusCacheKey.BUS_LINE_CACHE, GsonUtils.toJson(data.getResult())); } - + if (busRoutesResult == null){ + CacheDataManager.Companion.getInstance().putCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE, + GsonUtils.toJson(data.getResult())); + updateBusStatus(data.getResult()); + } } @@ -650,6 +684,8 @@ public class OrderModel { GsonUtils.toJson(busRoutesResult)); sendTaskDetailsToClients(); + + updateBusStatus(busRoutesResult); } } @@ -782,9 +818,22 @@ public class OrderModel { } private void sendTaskDetailsToClients() { - AppConnectMsg arrivedMsg = new AppConnectMsg(false,false,String.format(mContext - .getString(R.string.bus_arrived_station_tip), - GsonUtils.toJson(busRoutesResult)), DPMsgType.TYPE_TASK_DETAILS.getType()); + TaskDetailsMsg arrivedMsg = new TaskDetailsMsg(GsonUtils.toJson(busRoutesResult), + DPMsgType.TYPE_TASK_DETAILS.getType()); + + CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()); + } + + private void sendLoginStatusToClient() { + int status = 0; + if (LoginStatusManager.isLogin()){ + status = 1; + }else { + status = 0; + } + LoginCacheStatus arrivedMsg = new LoginCacheStatus(status, DateTimeUtil.getCurrentTimeStamp()); + CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); } @@ -798,29 +847,29 @@ public class OrderModel { } private void sendStartStationToClient(String nextStation) { - AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext + AppConnectMsg startMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_leave_station_tip), nextStation),DPMsgType.TYPE_COMMON.getType()); UiThreadHandler.postDelayed(()-> CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()),DELAY_10S); + GsonUtils.toJson(startMsg).getBytes()),DELAY_10S); } private void sendEndTaskToClient() { - AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,mContext + AppConnectMsg endMsg = new AppConnectMsg(false,true,mContext .getString(R.string.bus_end_task_tip), DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); + GsonUtils.toJson(endMsg).getBytes()); } public void sendWriteOffNumToClient(String msg){ - AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,msg,DPMsgType.TYPE_COMMON.getType()); + AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); + GsonUtils.toJson(passengerMsg).getBytes()); } /** @@ -842,6 +891,7 @@ public class OrderModel { CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName,finalNextStationNameKr); + OrderServiceManager.leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq(), stationList.get(backgroundCurrentStationIndex).getSiteId(), From 8051629a30f51e8263eda781da2503d668299b58 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 30 Mar 2023 19:54:04 +0800 Subject: [PATCH 3/5] =?UTF-8?q?[opt]=20=E4=BF=AE=E6=94=B9=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=E9=80=A0=E6=88=90=E7=9A=84=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/common/module/bean/dpmsg/DataBean.kt | 6 ++--- .../passenger/model/BusPassengerModel.java | 23 +++++++++++++------ .../com/mogo/och/bus/model/OrderModel.java | 16 ++++++------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt index 959b2ece21..774fe20cb9 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt @@ -38,10 +38,8 @@ data class DPOrderClosedMsg( ): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type) data class AppConnectMsg(var isViewShow: Boolean, var isPlay: Boolean, var msg: String, - override var type: Int -): BaseDPMsg(type) +): BaseDPMsg(DPMsgType.TYPE_COMMON.type) data class TaskDetailsMsg( var msg: String, - override var type: Int -): BaseDPMsg(type) +): BaseDPMsg(DPMsgType.TYPE_TASK_DETAILS.type) diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 02fa2e6165..ab399c03ca 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -138,8 +138,15 @@ public class BusPassengerModel { private void queryDriverByLocalDriver() { //本地去请求司机端 - AppConnectMsg msg = new AppConnectMsg(false,false,"", - DPMsgType.TYPE_TASK_DETAILS.getType()); + TaskDetailsMsg msg = new TaskDetailsMsg(""); + + sendMsgToServer(GsonUtils.toJson(msg)); + } + + private void queryLoginStatusByLocal() { + //本地去请求司机端 + LoginCacheStatus msg = new LoginCacheStatus(0, + DPMsgType.TYPE_LOGIN_STATUS.getType()); sendMsgToServer(GsonUtils.toJson(msg)); } @@ -244,11 +251,12 @@ public class BusPassengerModel { private void clearLocalRouteResult() { if (routesResult != null) { routesResult = null; - mNextStationIndex = 0; - startOrStopCalculateRouteInfo(false); - if (mRouteLineInfoCallback != null){ - mRouteLineInfoCallback.showNoTaskView(); - } + } + mNextStationIndex = 0; + startOrStopCalculateRouteInfo(false); + + if (mRouteLineInfoCallback != null){ + mRouteLineInfoCallback.showNoTaskView(); } } @@ -378,6 +386,7 @@ public class BusPassengerModel { return; } BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(), BusRoutesResult.class); + if (result != null && result.getWriteVersion() > routesResult.getWriteVersion()) { routesResult = result; updatePassengerRouteInfo(routesResult); diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java index 54d969edc7..a6b0fe9405 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -237,6 +237,8 @@ public class OrderModel { }else {// 未登陆 sendLoginStatusToClient(); } + }else if (msg != null && msg.getType() == DPMsgType.TYPE_LOGIN_STATUS.getType()){ + sendLoginStatusToClient(); } } } @@ -265,7 +267,7 @@ public class OrderModel { } if (list != null && list.contains(2)){ //乘客屏 - AppConnectMsg msg = new AppConnectMsg(true,false,obj.getContext(),DPMsgType.TYPE_COMMON.getType()); + AppConnectMsg msg = new AppConnectMsg(true,false,obj.getContext()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(msg).getBytes()); } @@ -818,8 +820,7 @@ public class OrderModel { } private void sendTaskDetailsToClients() { - TaskDetailsMsg arrivedMsg = new TaskDetailsMsg(GsonUtils.toJson(busRoutesResult), - DPMsgType.TYPE_TASK_DETAILS.getType()); + TaskDetailsMsg arrivedMsg = new TaskDetailsMsg(GsonUtils.toJson(busRoutesResult)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); @@ -841,7 +842,7 @@ public class OrderModel { private void sendArrivedStationToClient(String arriveStation) { AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_arrived_station_tip), - arriveStation),DPMsgType.TYPE_COMMON.getType()); + arriveStation)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); } @@ -849,7 +850,7 @@ public class OrderModel { private void sendStartStationToClient(String nextStation) { AppConnectMsg startMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_leave_station_tip), - nextStation),DPMsgType.TYPE_COMMON.getType()); + nextStation)); UiThreadHandler.postDelayed(()-> CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, @@ -858,15 +859,14 @@ public class OrderModel { private void sendEndTaskToClient() { AppConnectMsg endMsg = new AppConnectMsg(false,true,mContext - .getString(R.string.bus_end_task_tip), - DPMsgType.TYPE_COMMON.getType()); + .getString(R.string.bus_end_task_tip)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(endMsg).getBytes()); } public void sendWriteOffNumToClient(String msg){ - AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,DPMsgType.TYPE_COMMON.getType()); + AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(passengerMsg).getBytes()); From 65a83154c7fcc5d6aafeaf5c447394f501198af9 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 31 Mar 2023 16:55:05 +0800 Subject: [PATCH 4/5] =?UTF-8?q?[shuttle-B1/B2]=20=E5=BC=B1=E7=BD=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=99=BB=E9=99=86=E7=8A=B6=E6=80=81=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/common/module/bean/dpmsg/DataBean.kt | 1 + .../model/OchCommonLoginStatusDefaultModel.kt | 22 ++++ .../mogo/och/data/bean/BusRoutesResult.java | 14 +++ .../com/mogo/och/data/bean/BusTransferData.kt | 9 ++ OCH/mogo-och-shuttle-passenger/build.gradle | 3 +- .../passenger/model/BusPassengerModel.java | 32 ++++-- .../bus/passenger/bean/PM2RoutesResponse.java | 7 +- .../passenger/callback/DrivingInfoCallback.kt | 6 +- .../och/bus/passenger/model/PM2ADASModel.kt | 5 +- .../bus/passenger/model/PM2DrivingModel.kt | 105 +++++++++++++----- .../presenter/PM2DrivingPresenter.kt | 5 +- .../passenger/ui/PM2DrivingInfoFragment.kt | 5 +- .../com/mogo/och/bus/model/OrderModel.java | 80 +++++++------ .../mogo/och/bus/presenter/BusPresenter.java | 3 + 14 files changed, 202 insertions(+), 95 deletions(-) create mode 100644 OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt index 774fe20cb9..a73d7e0756 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt @@ -6,6 +6,7 @@ package com.mogo.och.common.module.bean.dpmsg object BusCacheKey{ const val BUS_LINE_CACHE = "bus_line_cache" + const val BUS_LOGIN_STATUS_CACHE = "bus_login_status_cache" } open class BaseDPMsg(open var type: Int) // 0: 常规 1:确认路线/站点 2:开/关车门 3:结束订单 diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt index 10348b6b2b..54a78bfcff 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt @@ -3,11 +3,18 @@ package com.mogo.och.common.module.biz.model import android.annotation.SuppressLint 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.util.GsonUtils import com.mogo.eagle.core.utilcode.util.SharedPrefs +import com.mogo.eagle.core.utilcode.util.TimeUtils +import com.mogo.och.common.module.bean.dpmsg.BusCacheKey +import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean 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.LoginStatusManager.isLogin +import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.data.manager.cache.CacheDataManager @SuppressLint("StaticFieldLeak") object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() { @@ -29,6 +36,19 @@ object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() { loginViewCallback?.showLoginDialogFragment() } loginCallback?.loginSuccess(data) + + updateLoginLocalStatus(isLogin()) + + } + + private fun updateLoginLocalStatus(isLogin: Boolean) { + var loginCacheStatus = LoginCacheStatus(if (isLogin){ + 1 + }else { + 0 + },DateTimeUtil.getCurrentTimeStamp()) + CacheDataManager.instance.putCacheData(mContext, BusCacheKey.BUS_LOGIN_STATUS_CACHE, + GsonUtils.toJson(loginCacheStatus)) } override fun loginFail(isLogin: Boolean) { @@ -39,6 +59,8 @@ object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() { loginViewCallback?.showLoginDialogFragment() } loginCallback?.loginFail(isLogin) + + updateLoginLocalStatus(isLogin) } } \ No newline at end of file diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java index b8aa437b06..59b6a1cc87 100644 --- a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java @@ -72,6 +72,20 @@ public class BusRoutesResult { this.writeVersion = writeVersion; } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BusRoutesResult that = (BusRoutesResult) o; + return lineId == that.lineId + && lineType == that.lineType + && status == that.status + && sites.equals(that.sites) + && name.equals(that.name) + && writeVersion == that.writeVersion + && runningDur.equals(that.runningDur); + } + @Override public String toString() { return "BusRoutesResult{" + diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt new file mode 100644 index 0000000000..264db19226 --- /dev/null +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt @@ -0,0 +1,9 @@ +package com.mogo.och.data.bean +/** + * @author: wangmingjun + * @date: 2023/3/31 + */ +data class BusTransferData ( + var loginStatus: Int, + var routesResult: BusRoutesResult, +) \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/build.gradle b/OCH/mogo-och-shuttle-passenger/build.gradle index 89f40de4af..8306815dfc 100644 --- a/OCH/mogo-och-shuttle-passenger/build.gradle +++ b/OCH/mogo-och-shuttle-passenger/build.gradle @@ -73,8 +73,7 @@ dependencies { implementation rootProject.ext.dependencies.rxandroid implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap - implementation project(":OCH:mogo-och-common-module") -// implementation project(":OCH:mogo-och-data") + api project(":OCH:mogo-och-common-module") compileOnly project(":libraries:mogo-map") implementation project(':core:mogo-core-res') testImplementation 'junit:junit:4.12' diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index ab399c03ca..6d35f14118 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -67,6 +67,7 @@ import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.data.bean.BusRoutesResult; import com.mogo.och.data.bean.BusStationBean; +import com.mogo.och.data.bean.BusTransferData; import org.jetbrains.annotations.NotNull; @@ -190,7 +191,6 @@ public class BusPassengerModel { } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } - queryDriverByLocalDriver(); } @Override @@ -228,6 +228,13 @@ public class BusPassengerModel { updatePassengerRouteInfo(routesResult); } + @Override + public void onError() { + CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = onError =" + + ", sn = " +BusPassengerServiceManager.INSTANCE.getDriverAppSn()); + queryDriverByLocalDriver(); + } + @Override public void onFail(int code, String msg) { CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = %s", msg @@ -244,6 +251,7 @@ public class BusPassengerModel { startOrStopCalculateRouteInfo(false); return; } + queryDriverByLocalDriver(); } }); } @@ -261,8 +269,10 @@ public class BusPassengerModel { } private void updatePassengerRouteInfo(BusRoutesResult result) { - if (routesResult == null) return; - + if (result == null){ + clearLocalRouteResult(); + return; + } if (mRouteLineInfoCallback != null){ mRouteLineInfoCallback.updateLineInfo(result.getName(),result.getRunningDur()); mRouteLineInfoCallback.hideNoTaskView(); @@ -373,22 +383,20 @@ public class BusPassengerModel { DateTimeUtil.getCurrentTimeStamp(), msg.getMsg(), OCHSocketMessageManager.OPERATION_SYSTEM); } - } else if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_LOGIN_STATUS.getType()) { - LoginCacheStatus msg = GsonUtils.fromJson(new String(byteArray), LoginCacheStatus.class); - if (msg != null) { - mDriverStatusCallback.changeOperationStatus(msg.getLoginStatus() == 1); - } } else if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()) { TaskDetailsMsg msg = GsonUtils.fromJson(new String(byteArray), TaskDetailsMsg.class); + Logger.d(SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(msg)); if (msg == null || msg.getMsg().isEmpty()) { clearLocalRouteResult(); return; } - BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(), BusRoutesResult.class); - - if (result != null && result.getWriteVersion() > routesResult.getWriteVersion()) { - routesResult = result; + BusTransferData result = GsonUtils.fromJson(msg.getMsg(), BusTransferData.class); + if (msg != null && mDriverStatusCallback != null) { + mDriverStatusCallback.changeOperationStatus(result.getLoginStatus() == 1); + } + if (result != null) { //已司机端传来的为准 + routesResult = result.getRoutesResult(); updatePassengerRouteInfo(routesResult); } } diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/bean/PM2RoutesResponse.java b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/bean/PM2RoutesResponse.java index 207b2d7e7d..32306a33c1 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/bean/PM2RoutesResponse.java +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/bean/PM2RoutesResponse.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.passenger.bean; import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.data.bean.BusRoutesResult; /** * 网约车小巴路线接口请求响应结果 返回的是对应司机屏的线路信息 @@ -8,13 +9,13 @@ import com.mogo.eagle.core.data.BaseData; * @author tongchenfei */ public class PM2RoutesResponse extends BaseData { - private PM2RoutesResult data; + private BusRoutesResult data; - public PM2RoutesResult getResult() { + public BusRoutesResult getResult() { return data; } - public void setResult(PM2RoutesResult data) { + public void setResult(BusRoutesResult data) { this.data = data; } diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt index 452ffb685a..1b9c77b224 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt @@ -1,6 +1,6 @@ package com.mogo.och.bus.passenger.callback -import com.mogo.och.bus.passenger.bean.PM2Station +import com.mogo.och.data.bean.BusStationBean /** * @author: wangmingjun @@ -13,6 +13,6 @@ interface DrivingInfoCallback { fun updateRemainMT(meters : Long, timeInSecond : Long) // 米,秒 fun changeOperationStatus(loginStatus : Boolean) fun showNoTaskView(isTrue : Boolean) - fun updateLineStations(stations: MutableList) - fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) + fun updateLineStations(stations: MutableList) + fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) } \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ADASModel.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ADASModel.kt index a21f2fd938..87c68dda4f 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ADASModel.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ADASModel.kt @@ -1,9 +1,8 @@ package com.mogo.och.bus.passenger.model import android.content.Context -import com.amap.api.maps.model.LatLng -import com.mogo.och.bus.passenger.bean.PM2Station import com.mogo.och.bus.passenger.callback.ADASCallback +import com.mogo.och.data.bean.BusStationBean /** * @author: wangmingjun @@ -29,7 +28,7 @@ class PM2ADASModel private constructor() { this.mAdasCallback = adasCallback } - fun updateHDMapStations(stations: MutableList){ + fun updateHDMapStations(stations: MutableList){ var stationsList = mutableListOf>() for (i in stations.indices){ var listLatLng = mutableListOf() // 0: long 1:lat diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 60f012ba68..11f8af010d 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -23,6 +23,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToServer import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant @@ -33,18 +34,19 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.bean.PM2OperationStatusResponse import com.mogo.och.bus.passenger.bean.PM2RoutesResponse -import com.mogo.och.bus.passenger.bean.PM2RoutesResult -import com.mogo.och.bus.passenger.bean.PM2Station import com.mogo.och.bus.passenger.callback.AutoPilotStatusCallback import com.mogo.och.bus.passenger.callback.DrivingInfoCallback import com.mogo.och.bus.passenger.constant.BusPassengerConst import com.mogo.och.bus.passenger.network.PM2ModelLoopManager -import com.mogo.och.common.module.bean.AppConnectMsg -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.bean.dpmsg.* +import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.data.bean.BusRoutesResult +import com.mogo.och.data.bean.BusStationBean +import com.mogo.och.data.bean.BusTransferData import mogo.telematics.pad.MessagePad import kotlin.math.abs @@ -58,11 +60,11 @@ class PM2DrivingModel private constructor() { private var mLocation: MogoLocation? = null private var mRoutePoints = mutableListOf() - private var routesResult: PM2RoutesResult? = null + private var routesResult: BusRoutesResult? = null private var mCurrentAutoStatus = -1 - var mStations = mutableListOf() + var mStations = mutableListOf() private var mNextStationIndex = 0 // A-B要到达站的index private var isGoingToNextStation = false //是否前往下一站过程中 @@ -94,11 +96,17 @@ class PM2DrivingModel private constructor() { fun init(context : Context){ mContext = context initListener() - // TODO: 2022/3/31 + queryDriverByLocalDriver() queryDriverOperationStatus() startOrStopOrderLoop(true) } + private fun queryDriverByLocalDriver() { + //本地去请求司机端 + val msg = TaskDetailsMsg("") + sendMsgToServer(GsonUtils.toJson(msg)) + } + private fun initListener() { //自动驾驶状态监听 CallerAutoPilotStatusListenerManager.addListener(TAG, mAutoPilotStatusListener) @@ -118,6 +126,13 @@ class PM2DrivingModel private constructor() { } + private fun sendMsgToServer(msg: String) { + sendMsgToServer( + OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(msg).toByteArray() + ) + } + fun releaseListener(){ //自动驾驶状态监听 CallerAutoPilotStatusListenerManager.removeListener(TAG) @@ -152,14 +167,43 @@ class PM2DrivingModel private constructor() { @RequiresApi(Build.VERSION_CODES.O) override fun onReceivedMsg(type: Int, byteArray: ByteArray) {//接收司机端发来的信息 if (OchCommonConst.BUSINESS_STRING == type){ - val msg = GsonUtils.fromJson(String(byteArray),AppConnectMsg::class.java) as AppConnectMsg - Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)) - if (msg.isPlay){ //播报 - speakTTS(msg.msg) - } - if (msg.isViewShow){ //消息盒子显示内容 - OCHSocketMessageManager.pushAppOperationalMsgBox( - DateTimeUtil.getCurrentTimeStamp(),msg.msg) + val baseMsg = GsonUtils.fromJson(String(byteArray), BaseDPMsg::class.java) + Logger.d( + SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(baseMsg) + ) + + if (baseMsg != null && baseMsg.type == DPMsgType.TYPE_COMMON.type) { + val msg = GsonUtils.fromJson(String(byteArray), AppConnectMsg::class.java) + + if (msg != null && msg.isPlay){ //播报 + speakTTS(msg.msg) + } + + if (msg != null && msg.isViewShow) { //消息盒子显示内容 + pushAppOperationalMsgBox( + DateTimeUtil.getCurrentTimeStamp(),msg.msg) + } + }else if (baseMsg != null && baseMsg.type == DPMsgType.TYPE_TASK_DETAILS.type) { + val msg = GsonUtils.fromJson(String(byteArray), TaskDetailsMsg::class.java) + Logger.d( + SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(msg) + ) + if (msg == null || msg.msg.isEmpty()) { + updateLocalOrder() + return + } + val result = GsonUtils.fromJson(msg.msg, BusTransferData::class.java) + mDrivingInfoCallback?.changeOperationStatus(result.loginStatus == 1) + if (result != null && result.routesResult == null){ + updateLocalOrder() + } + + if (routesResult == null || + (result != null && result.routesResult.writeVersion > routesResult!!.writeVersion)) { + routesResult = result.routesResult + updatePassengerRouteInfo(routesResult!!) + } + } } } @@ -288,7 +332,8 @@ class PM2DrivingModel private constructor() { } else { ToastUtils.showShort(mContext!!.getString(R.string.request_error_tip)) } - queryDriverOperationDelay() +// queryDriverOperationDelay() + queryDriverByLocalDriver() } override fun onFail(code: Int, msg: String) { @@ -319,7 +364,15 @@ class PM2DrivingModel private constructor() { return } - routesResult = data.result + if (routesResult != null && + routesResult!!.writeVersion < data.result.writeVersion + ) { + routesResult = data.result + } + + if (routesResult == null) { + routesResult = data.result + } updatePassengerRouteInfo(data.result) } @@ -351,19 +404,19 @@ class PM2DrivingModel private constructor() { mDrivingInfoCallback?.showNoTaskView(true) } - private fun updatePassengerRouteInfo(result: PM2RoutesResult) { + private fun updatePassengerRouteInfo(result: BusRoutesResult) { mDrivingInfoCallback?.updateLine(result.name, result.runningDur) if (result.sites != null) { mDrivingInfoCallback?.showNoTaskView(false) - val stations: List = result.sites + val stations: List = result.sites mStations.clear() mStations.addAll(stations) mDrivingInfoCallback?.updateLineStations(mStations) for (i in stations.indices) { - val station: PM2Station = stations[i] + val station: BusStationBean = stations[i] if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && station.isLeaving && i + 1 < stations.size) { - mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i + 1, false) + mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i + 1, false) if (mNextStationIndex != i + 1) { d(SceneConstant.M_BUS_P+TAG,"och-rotting--start ") mTwoStationsRouts.clear() @@ -376,7 +429,7 @@ class PM2DrivingModel private constructor() { mPreRouteIndex = 0 isGoingToNextStation = false startOrStopCalculateRouteInfo(false) - mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i, true) + mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i, true) return } } @@ -431,7 +484,7 @@ class PM2DrivingModel private constructor() { var lastSumLength = 0f lastSumLength = if (lastPoints.size == 1) { //只是最后一个点,计算当前位置和最后一个点的距离 if (mNextStationIndex <= mStations.size - 1 && mNextStationIndex >= 0) { - val stationNext: PM2Station = mStations[mNextStationIndex] + val stationNext: BusStationBean = mStations[mNextStationIndex] CoordinateUtils.calculateLineDistance( stationNext.gcjLon, stationNext.gcjLat, mLocation!!.longitude, mLocation!!.latitude @@ -462,8 +515,8 @@ class PM2DrivingModel private constructor() { if (mStations.size > 1) { //两个站点及以上要计算两个站点间的轨迹路线 if (mNextStationIndex <= mStations.size - 1 && mNextStationIndex - 1 >= 0) { mTwoStationsRouts.clear() - val stationNext: PM2Station = mStations[mNextStationIndex] - val stationCur: PM2Station = mStations[mNextStationIndex - 1] + val stationNext: BusStationBean = mStations[mNextStationIndex] + val stationCur: BusStationBean = mStations[mNextStationIndex - 1] //当前站在轨迹中对应的点 val currentRouteIndex = CoordinateCalculateRouteUtil.getArrivedPointIndexNew( 0, mRoutePoints, stationCur.gcjLon, stationCur.gcjLat diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt index b1cba39ddd..e11f742db8 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt @@ -11,6 +11,7 @@ import com.mogo.och.bus.passenger.callback.DrivingInfoCallback import com.mogo.och.bus.passenger.model.PM2ADASModel import com.mogo.och.bus.passenger.model.PM2DrivingModel import com.mogo.och.bus.passenger.ui.PM2DrivingInfoFragment +import com.mogo.och.data.bean.BusStationBean class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : Presenter(view), DrivingInfoCallback, AutoPilotStatusCallback { @@ -80,14 +81,14 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : } } - override fun updateLineStations(stations: MutableList) { + override fun updateLineStations(stations: MutableList) { ThreadUtils.runOnUiThread { mView?.updateLineStations(stations) } PM2ADASModel.INSTANCE.updateHDMapStations(stations) } - override fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) { + override fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) { ThreadUtils.runOnUiThread { mView?.updateStationsInfo(stations,i,isArrived) } diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index a9abc4ee54..5b0edea261 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -18,6 +18,7 @@ import com.mogo.och.bus.passenger.bean.PM2Station import com.mogo.och.bus.passenger.presenter.PM2DrivingPresenter import com.mogo.och.common.module.utils.DateTimeUtil.* import com.mogo.och.common.module.utils.NumberFormatUtil +import com.mogo.och.data.bean.BusStationBean import kotlinx.android.synthetic.m2.p_m2_driving_info_fragment.* import java.lang.ref.WeakReference import kotlin.math.ceil @@ -191,7 +192,7 @@ class PM2DrivingInfoFragment : } } - fun updateLineStations(stations: MutableList){ + fun updateLineStations(stations: MutableList){ var stationsList = mutableListOf() for (i in stations.indices){ val station = stations[i] @@ -204,7 +205,7 @@ class PM2DrivingInfoFragment : } } - fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean){ + fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean){ if (stations.size == 0) return if (0<= i && i DateTimeUtil.getTodayStartTime() && + status.getLoginStatus() == 1){//登陆 + + String cacheData = CacheDataManager.Companion.getInstance().getCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE); + + if (cacheData == null || cacheData.isEmpty()){ + queryBusRoutes(); + }else { + BusTransferData data = GsonUtils.fromJson(cacheData,BusTransferData.class); + getCacheRouteSuccess(data.getRoutesResult()); + } + }else{ // 未登陆 + CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LOGIN_STATUS_CACHE); + sendTaskDetailsToClients(); + } + } } private void getCacheRouteSuccess(BusRoutesResult data){ @@ -485,18 +494,10 @@ public class OrderModel { return; } - if (busRoutesResult != null && busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){ + if (busRoutesResult == null || busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){ CallerLogger.INSTANCE.d(M_BUS + TAG, "更新小巴路线数据: " + data); -// updateBusStatus(data.getResult()); - CacheDataManager.Companion.getInstance().putCacheData(mContext, - BusCacheKey.BUS_LINE_CACHE, - GsonUtils.toJson(data.getResult())); - } - if (busRoutesResult == null){ - CacheDataManager.Companion.getInstance().putCacheData(mContext, - BusCacheKey.BUS_LINE_CACHE, - GsonUtils.toJson(data.getResult())); updateBusStatus(data.getResult()); + pushCacheTransferData(data.getResult()); } } @@ -682,10 +683,8 @@ public class OrderModel { sites.set(currentIndex -1,beanPre); } busRoutesResult.setSite(sites); - CacheDataManager.Companion.getInstance().putCacheData(mContext, BusCacheKey.BUS_LINE_CACHE, - GsonUtils.toJson(busRoutesResult)); - sendTaskDetailsToClients(); + pushCacheTransferData(busRoutesResult); updateBusStatus(busRoutesResult); } @@ -820,23 +819,18 @@ public class OrderModel { } private void sendTaskDetailsToClients() { - TaskDetailsMsg arrivedMsg = new TaskDetailsMsg(GsonUtils.toJson(busRoutesResult)); - + BusTransferData data = new BusTransferData(LoginStatusManager.getLoginStatus().getCode(),busRoutesResult); + TaskDetailsMsg msg = new TaskDetailsMsg(GsonUtils.toJson(data)); + CallerLogger.INSTANCE.d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); + GsonUtils.toJson(msg).getBytes()); } - private void sendLoginStatusToClient() { - int status = 0; - if (LoginStatusManager.isLogin()){ - status = 1; - }else { - status = 0; - } - LoginCacheStatus arrivedMsg = new LoginCacheStatus(status, DateTimeUtil.getCurrentTimeStamp()); - - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); + private void pushCacheTransferData(BusRoutesResult result) { + BusTransferData data = new BusTransferData(LoginStatusManager.getLoginStatus().getCode(),result); + CacheDataManager.Companion.getInstance().putCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE, + GsonUtils.toJson(data)); } private void sendArrivedStationToClient(String arriveStation) { @@ -1042,6 +1036,8 @@ public class OrderModel { slidePanelHideCallback.hideSlidePanel(); } + sendTaskDetailsToClients(); + //更新bus路线面板 updateBusTaskStatus(stationList); diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index d1396089b7..0a10e5b41f 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -33,6 +33,7 @@ import com.mogo.och.common.module.biz.callback.ILoginCallback; import com.mogo.och.common.module.biz.constant.LoginStatusManager; import com.mogo.och.common.module.manager.OCHAdasAbilityManager; import com.mogo.och.common.module.voice.VoiceNotice; +import com.mogo.och.data.manager.cache.CacheDataManager; import org.jetbrains.annotations.NotNull; @@ -70,6 +71,8 @@ public class BusPresenter extends Presenter public void onCreate(@NonNull LifecycleOwner owner) { super.onCreate(owner); initModelListener(); + + OrderModel.getInstance().queryBusCacheRoutes(); } @Override From 21ac2f8f4a02980f5b9158f531147346a6f266d0 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 31 Mar 2023 20:47:19 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[shuttle-B1/B2]=20=E5=BC=B1=E7=BD=91?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/common/module/bean/dpmsg/DataBean.kt | 2 +- .../com/mogo/och/data/bean/BusTransferData.kt | 2 +- .../bus/passenger/model/BusPassengerModel.java | 4 ++-- .../och/bus/passenger/model/PM2DrivingModel.kt | 15 +++++++++++++++ .../java/com/mogo/och/bus/model/OrderModel.java | 5 +++-- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt index a73d7e0756..2fae88bbb1 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt @@ -42,5 +42,5 @@ data class AppConnectMsg(var isViewShow: Boolean, var isPlay: Boolean, var msg: ): BaseDPMsg(DPMsgType.TYPE_COMMON.type) data class TaskDetailsMsg( - var msg: String, + var msg: String?, ): BaseDPMsg(DPMsgType.TYPE_TASK_DETAILS.type) diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt index 264db19226..eca93d7588 100644 --- a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt @@ -5,5 +5,5 @@ package com.mogo.och.data.bean */ data class BusTransferData ( var loginStatus: Int, - var routesResult: BusRoutesResult, + var routesResult: BusRoutesResult?, ) \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 6d35f14118..d2ddb289c9 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -139,7 +139,7 @@ public class BusPassengerModel { private void queryDriverByLocalDriver() { //本地去请求司机端 - TaskDetailsMsg msg = new TaskDetailsMsg(""); + TaskDetailsMsg msg = new TaskDetailsMsg("task"); sendMsgToServer(GsonUtils.toJson(msg)); } @@ -167,7 +167,7 @@ public class BusPassengerModel { private void sendMsgToServer(String msg){ CallerTelematicManager.INSTANCE.sendMsgToServer( OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).getBytes() + msg.getBytes() ); } diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 11f8af010d..7da2122640 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -376,6 +376,15 @@ class PM2DrivingModel private constructor() { updatePassengerRouteInfo(data.result) } + fun onError() { + CallerLogger.d( + SceneConstant.Companion.M_BUS_P + TAG, + "queryDriverSiteByCoordinate = onError =" + + ", sn = " + BusPassengerServiceManager.driverAppSn + ) + queryDriverByLocalDriver() + } + override fun onFail(code: Int, msg: String?) { d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate = %s", msg) if (code == 1003){ @@ -405,6 +414,12 @@ class PM2DrivingModel private constructor() { } private fun updatePassengerRouteInfo(result: BusRoutesResult) { + + if (result == null) { + clearLocalRouteResult() + return + } + mDrivingInfoCallback?.updateLine(result.name, result.runningDur) if (result.sites != null) { mDrivingInfoCallback?.showNoTaskView(false) diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java index 454bb0a761..be4cecf5e1 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -819,7 +819,8 @@ public class OrderModel { } private void sendTaskDetailsToClients() { - BusTransferData data = new BusTransferData(LoginStatusManager.getLoginStatus().getCode(),busRoutesResult); + + BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,busRoutesResult); TaskDetailsMsg msg = new TaskDetailsMsg(GsonUtils.toJson(data)); CallerLogger.INSTANCE.d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, @@ -827,7 +828,7 @@ public class OrderModel { } private void pushCacheTransferData(BusRoutesResult result) { - BusTransferData data = new BusTransferData(LoginStatusManager.getLoginStatus().getCode(),result); + BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,result); CacheDataManager.Companion.getInstance().putCacheData(mContext, BusCacheKey.BUS_LINE_CACHE, GsonUtils.toJson(data));