解决了出行动态中道路事件重复存储的问题

This commit is contained in:
董宏宇
2020-12-09 11:14:40 +08:00
parent 6fee5deaca
commit 8f02c3dfb3
15 changed files with 94 additions and 27 deletions

View File

@@ -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面板名称
*/

View File

@@ -108,6 +108,7 @@ public class V2XIllegalParkVH extends V2XBaseViewHolder<V2XEventShowEntity> {
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);
}

View File

@@ -98,6 +98,7 @@ public class V2XScenarioHistoryIllegalParkVH extends V2XBaseViewHolder<V2XHistor
v2XHistoryScenarioData.setScenarioType(mOldScenarioData.getScenarioType());
v2XHistoryScenarioData.setTriggerTime(mOldScenarioData.getTriggerTime());
v2XHistoryScenarioData.setEventJsonData(mOldScenarioData.getEventJsonData());
v2XHistoryScenarioData.setEventJsonDataHashCode(mOldScenarioData.getEventJsonDataHashCode());
v2XHistoryScenarioData.setDispose(true);
V2XSQLiteUtils.updateScenarioHistoryData(mOldScenarioData, v2XHistoryScenarioData);
mOldScenarioData.setDispose(true);

View File

@@ -170,6 +170,7 @@ public class V2XScenarioHistoryOtherSeekHelpVH extends V2XBaseViewHolder<V2XHist
v2XHistoryScenarioData.setScenarioType(mOldScenarioData.getScenarioType());
v2XHistoryScenarioData.setTriggerTime(mOldScenarioData.getTriggerTime());
v2XHistoryScenarioData.setEventJsonData(mOldScenarioData.getEventJsonData());
v2XHistoryScenarioData.setEventJsonDataHashCode(mOldScenarioData.getEventJsonDataHashCode());
v2XHistoryScenarioData.setDispose(true);
V2XSQLiteUtils.updateScenarioHistoryData(mOldScenarioData, v2XHistoryScenarioData);
mOldScenarioData.setDispose(true);

View File

@@ -104,6 +104,7 @@ public class V2XScenarioHistoryRoadEventVH extends V2XBaseViewHolder<V2XHistoryS
v2XHistoryScenarioData.setScenarioType(mOldScenarioData.getScenarioType());
v2XHistoryScenarioData.setTriggerTime(mOldScenarioData.getTriggerTime());
v2XHistoryScenarioData.setEventJsonData(mOldScenarioData.getEventJsonData());
v2XHistoryScenarioData.setEventJsonDataHashCode(mOldScenarioData.getEventJsonDataHashCode());
v2XHistoryScenarioData.setDispose(true);
V2XSQLiteUtils.updateScenarioHistoryData(mOldScenarioData, v2XHistoryScenarioData);

View File

@@ -178,7 +178,7 @@ public class V2XLocationListener implements IMogoLocationListener, CarStatusList
//如果poiType是道路拥堵则调用接口查询拥堵状态
String poiType = v2XRoadEventEntity.getPoiType();
if(poiType != null && poiType.equals(FOURS_BLOCK_UP)){
if (poiType != null && poiType.equals(FOURS_BLOCK_UP)) {
V2XServiceManager.getIMogoTrafficUploadProvider().verifyCurrentTrafficStatus();
}
}
@@ -320,11 +320,11 @@ public class V2XLocationListener implements IMogoLocationListener, CarStatusList
/**
* 存储本地数据
*
* @param markerExploreWay 要存储的场景
* @param v2XRoadEventEntity 要存储的场景
*/
public void saveLocalStory(int scenarioType, Object markerExploreWay) {
public void saveLocalStory(int scenarioType, MarkerExploreWay v2XRoadEventEntity) {
try {
V2XSQLiteUtils.saveLocalStory(scenarioType,markerExploreWay);
V2XSQLiteUtils.saveLocalStory(scenarioType, v2XRoadEventEntity, v2XRoadEventEntity.hashCode());
} catch (Exception e) {
e.printStackTrace();
}

View File

@@ -97,18 +97,4 @@ public abstract class AbsV2XScenario<T> 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();
}
}
}

View File

@@ -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<List<MarkerExploreWay
public void clearPOI() {
}
/**
* 存储本地数据
*
* @param messageEntity 要存储的场景
*/
private void saveLocalStory(int scenarioType, MarkerExploreWay messageEntity) {
try {
V2XSQLiteUtils.saveLocalStory(scenarioType, messageEntity, messageEntity.hashCode());
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@@ -14,6 +14,7 @@ import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.entity.net.V2XSpecialCarRes.V2XMarkerEntity;
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
import com.mogo.module.v2x.utils.ADASUtils;
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
import com.mogo.module.v2x.utils.V2XUtils;
import com.mogo.service.entrance.IMogoEntranceButtonController;
import com.mogo.service.windowview.IMogoTopViewStatusListener;
@@ -176,4 +177,17 @@ public class V2XSeekHelpScenario extends AbsV2XScenario<List<V2XMarkerEntity>> 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();
}
}
}

View File

@@ -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();
}
}
}

View File

@@ -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<V2XHistoryScenarioData> historyScenarioData = getTargetScenarioHistoryData(v2XHistoryScenarioData);
v2XHistoryScenarioData.setEventJsonData(GsonUtil.jsonFromObject(markerExploreWay));
v2XHistoryScenarioData.setTriggerTime(TimeUtils.getNowMills());
v2XHistoryScenarioData.setDispose(false);