From 8f02c3dfb35e55f097c176304d196f7a2f4bf56b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 9 Dec 2020 11:14:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86=E5=87=BA=E8=A1=8C?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E4=B8=AD=E9=81=93=E8=B7=AF=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E5=AD=98=E5=82=A8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constants/RoomConstants.java | 9 ++++++++ .../common/entity/V2XHistoryScenarioData.java | 23 +++++++++++++++---- .../java/com/mogo/module/v2x/V2XConst.java | 2 ++ .../v2x/adapter/holder/V2XIllegalParkVH.java | 1 + .../V2XScenarioHistoryIllegalParkVH.java | 1 + .../V2XScenarioHistoryOtherSeekHelpVH.java | 1 + .../holder/V2XScenarioHistoryRoadEventVH.java | 1 + .../v2x/listener/V2XLocationListener.java | 8 +++---- .../v2x/scenario/impl/AbsV2XScenario.java | 14 ----------- .../scene/park/V2XIllegalParkScenario.java | 14 +++++++++++ .../scene/seek/V2XSeekHelpScenario.java | 14 +++++++++++ .../scene/test/V2XTestConsoleWindow.java | 18 +++++++++++++++ .../mogo/module/v2x/utils/V2XSQLiteUtils.java | 9 ++++++-- .../res/raw/scenario_push_event_data.json | 2 +- .../res/raw/scenario_road_event_data.json | 4 ++-- 15 files changed, 94 insertions(+), 27 deletions(-) create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/RoomConstants.java diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/RoomConstants.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/RoomConstants.java new file mode 100644 index 0000000000..406e9d4840 --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/RoomConstants.java @@ -0,0 +1,9 @@ +package com.mogo.module.common.constants; + +/** + * 数据库常量 + */ +public class RoomConstants { + public static final String DB_NAME_V2X = "MoGoScenario.db"; + public static final String TB_NAME_SCENARIO = "tb_travel_scenario"; +} diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XHistoryScenarioData.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XHistoryScenarioData.java index 53f5250437..23a176a04d 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XHistoryScenarioData.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XHistoryScenarioData.java @@ -1,6 +1,6 @@ package com.mogo.module.common.entity; -import com.mogo.map.location.MogoLocation; +import com.mogo.module.common.constants.RoomConstants; import com.mogo.utils.sqlite.annotation.DbDatabase; import com.mogo.utils.sqlite.annotation.DbField; import com.mogo.utils.sqlite.annotation.DbTable; @@ -10,8 +10,8 @@ import com.mogo.utils.sqlite.annotation.DbTable; * * @author donghongyu */ -@DbDatabase(dbName = "MoGoScenario.db") -@DbTable(tableName = "tb_history_scenario") +@DbDatabase(dbName = RoomConstants.DB_NAME_V2X) +@DbTable(tableName = RoomConstants.TB_NAME_SCENARIO) public class V2XHistoryScenarioData { /** @@ -32,6 +32,13 @@ public class V2XHistoryScenarioData { @DbField(fieldName = "eventJsonData") public String eventJsonData; + /** + * 事件json HashCode + * 只取json中的几个代表性字段,表示唯一性,因为图片地址会经常被改变 + */ + @DbField(fieldName = "eventJsonDataHashCode") + public Integer eventJsonDataHashCode; + /** * 事件是否被处理过了,true-处理过了。false-未处理过 */ @@ -70,8 +77,16 @@ public class V2XHistoryScenarioData { isDispose = dispose; } + public Integer getEventJsonDataHashCode() { + return eventJsonDataHashCode; + } + + public void setEventJsonDataHashCode(Integer eventJsonDataHashCode) { + this.eventJsonDataHashCode = eventJsonDataHashCode; + } + @Override - public V2XHistoryScenarioData clone() throws CloneNotSupportedException { + public V2XHistoryScenarioData clone() { try { return (V2XHistoryScenarioData) super.clone(); } catch (CloneNotSupportedException e) { diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java index 0bb891384e..7d4f0885d8 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java @@ -8,6 +8,8 @@ package com.mogo.module.v2x; * version: 1.0 */ public class V2XConst { + + public static final String T_SCENARIO_HISTORY = "t_search_poi"; /** * V2X面板名称 */ diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XIllegalParkVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XIllegalParkVH.java index b57ff5d648..ab27796c44 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XIllegalParkVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XIllegalParkVH.java @@ -108,6 +108,7 @@ public class V2XIllegalParkVH extends V2XBaseViewHolder { V2XHistoryScenarioData v2XHistoryScenarioData =new V2XHistoryScenarioData(); v2XHistoryScenarioData.setScenarioType(V2XMessageEntity.V2XTypeEnum.ALERT_ILLEGAL_PARK_WARNING); v2XHistoryScenarioData.setEventJsonData(GsonUtil.jsonFromObject(mExploreWay)); + v2XHistoryScenarioData.setEventJsonDataHashCode(mExploreWay.hashCode()); V2XSQLiteUtils.updateScenarioHistoryDataIsDispose(v2XHistoryScenarioData); itemView.postDelayed(() -> V2XIllegalParkScenario.getInstance().close(), 1000); } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XScenarioHistoryIllegalParkVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XScenarioHistoryIllegalParkVH.java index e32d6aef52..5448409c33 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XScenarioHistoryIllegalParkVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XScenarioHistoryIllegalParkVH.java @@ -98,6 +98,7 @@ public class V2XScenarioHistoryIllegalParkVH extends V2XBaseViewHolder implements IV2XScenario { } return mV2XMessageEntity.equals(v2XMessageEntity); } - - - /** - * 存储本地数据 - * - * @param markerExploreWay 要存储的场景 - */ - public void saveLocalStory(int scenarioType, Object markerExploreWay) { - try { - V2XSQLiteUtils.saveLocalStory(scenarioType,markerExploreWay); - } catch (Exception e) { - e.printStackTrace(); - } - } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/park/V2XIllegalParkScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/park/V2XIllegalParkScenario.java index 13417215ee..c946cd0c1a 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/park/V2XIllegalParkScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/park/V2XIllegalParkScenario.java @@ -5,6 +5,7 @@ import androidx.annotation.Nullable; import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.common.entity.V2XPoiTypeEnum; +import com.mogo.module.common.entity.V2XPushMessageEntity; import com.mogo.module.common.entity.V2XRoadEventEntity; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.V2XStatusManager; @@ -12,6 +13,7 @@ import com.mogo.module.v2x.alarm.V2XAlarmServer; import com.mogo.module.v2x.scenario.impl.AbsV2XScenario; import com.mogo.module.v2x.utils.ADASUtils; import com.mogo.module.v2x.utils.TrackUtils; +import com.mogo.module.v2x.utils.V2XSQLiteUtils; import java.util.ArrayList; import java.util.List; @@ -113,4 +115,16 @@ public class V2XIllegalParkScenario extends AbsV2XScenario> i setV2XMessageEntity(null); clearPOI(); } + + /** + * 存储本地数据 + * + * @param messageEntity 要存储的场景 + */ + private void saveLocalStory(int scenarioType, V2XPushMessageEntity messageEntity) { + try { + V2XSQLiteUtils.saveLocalStory(scenarioType, messageEntity, messageEntity.hashCode()); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java index c979cca04b..a39d5056bc 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java @@ -190,6 +190,12 @@ public class V2XTestConsoleWindow extends ConstraintLayout { Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent); + + + // 存储本地,出行动态作展示 + saveLocalStory(V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING, + v2XMessageEntity.getContent().getNoveltyInfo()); + }); mBtnTriggerPushEvent.setOnClickListener(v -> { @@ -334,4 +340,16 @@ public class V2XTestConsoleWindow extends ConstraintLayout { }); } + /** + * 存储本地数据 + * + * @param v2XRoadEventEntity 要存储的场景 + */ + public void saveLocalStory(int scenarioType, MarkerExploreWay v2XRoadEventEntity) { + try { + V2XSQLiteUtils.saveLocalStory(scenarioType, v2XRoadEventEntity, v2XRoadEventEntity.hashCode()); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java index 374db86fa8..eb4e1f7e3d 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java @@ -135,6 +135,7 @@ public class V2XSQLiteUtils { newScenarioData.setDispose(true); newScenarioData.setTriggerTime(TimeUtils.getNowMills()); newScenarioData.setEventJsonData(oldScenarioData.getEventJsonData()); + newScenarioData.setEventJsonDataHashCode(oldScenarioData.getEventJsonDataHashCode()); newScenarioData.setScenarioType(oldScenarioData.getScenarioType()); int result = getScenarioHistoryDao().update(oldScenarioData, newScenarioData); @@ -150,15 +151,19 @@ public class V2XSQLiteUtils { * * @param markerExploreWay 要存储的场景 */ - public static void saveLocalStory(int scenarioType, Object markerExploreWay) { + public static void saveLocalStory(int scenarioType, Object markerExploreWay, int hashCode) { try { + + Logger.d(V2XConst.MODULE_NAME, "saveLocalStory:" + markerExploreWay); + // 进行数据库存储 V2XHistoryScenarioData v2XHistoryScenarioData = new V2XHistoryScenarioData(); v2XHistoryScenarioData.setScenarioType(scenarioType); - v2XHistoryScenarioData.setEventJsonData(GsonUtil.jsonFromObject(markerExploreWay)); + v2XHistoryScenarioData.setEventJsonDataHashCode(hashCode); List historyScenarioData = getTargetScenarioHistoryData(v2XHistoryScenarioData); + v2XHistoryScenarioData.setEventJsonData(GsonUtil.jsonFromObject(markerExploreWay)); v2XHistoryScenarioData.setTriggerTime(TimeUtils.getNowMills()); v2XHistoryScenarioData.setDispose(false); diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_event_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_event_data.json index 123e7b78ca..c166e32a62 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_event_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_event_data.json @@ -18,6 +18,6 @@ }, "lat": 39.968678, "lon": 116.405467, - "userHead": "https://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/defaultUserHeadImg/5.png", + "userHead": "tUserHeadImg/5.png", "msgImgUrl": "https://upload.jianshu.io/users/upload_avatars/7663825/7c28763e-002b-4e89-8dea-5b8da210ef2c.jpg" } \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json index f491d85a2e..cf4d9e9c07 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json @@ -20,8 +20,8 @@ "items":[ { "illegalCount":0, - "thumbnail":"http://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592473692394.jpeg", - "url":"http://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592473692394.jpeg" + "thumbnail":"http://yycp-beijing.myqcloud.com/sso-server-image/1592473692394.jpeg", + "url":"http://yycp-static-1255510688.coom/sso-server-image/1592473692394.jpeg" } ], "location":{