From d2856c7c48be7e9be5b56d6aa90ee4dc6933b588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Mon, 9 Nov 2020 12:46:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=20=E3=80=90=E8=98=91?= =?UTF-8?q?=E8=8F=87=E5=87=BA=E8=A1=8C1.1.7=E3=80=91=E8=B7=AF=E5=86=B5?= =?UTF-8?q?=E4=BB=8D=E5=8F=AF=E4=BB=A5=E8=A2=AB=E9=87=8D=E5=A4=8D=E7=82=B9?= =?UTF-8?q?=E8=B5=9E=EF=BC=8C=E4=B8=94=E7=82=B9=E8=B5=9E=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E6=92=AD=E6=8A=A5=E4=B8=8D=E6=AD=A3=E7=A1=AE=20http://jira.zhi?= =?UTF-8?q?daohulian.com/browse/FX-528=20v2x=E4=BA=8B=E4=BB=B6=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E7=82=B9=E8=B5=9E=EF=BC=8C=E7=82=B9=E5=87=BB=E7=AC=AC?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E5=90=8C=E6=A0=B7=E6=8F=90=E7=A4=BA=E2=80=9D?= =?UTF-8?q?=E4=BB=A5=E7=82=B9=E8=B5=9E=E2=80=9C=20http://jira.zhidaohulian?= =?UTF-8?q?.com/browse/D80XCD-1587?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/entity/MarkerExploreWay.java | 11 ++++ .../module/common/entity/V2XEventZanData.java | 51 +++++++++++++++ .../v2x/adapter/holder/V2XBaseViewHolder.java | 24 ++++--- .../v2x/adapter/holder/V2XRoadEventVH.java | 10 ++- .../mogo/module/v2x/utils/V2XSQLiteUtils.java | 65 +++++++++++++++++++ .../main/res/layout/item_v2x_event_detail.xml | 2 +- 6 files changed, 151 insertions(+), 12 deletions(-) create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XEventZanData.java diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java index e4c719eb8c..a21132d754 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java @@ -30,6 +30,8 @@ public class MarkerExploreWay implements Serializable { //上报类型:1-用户上报,2-后台上报 3-三方上报 private String uploadType; + private boolean fabulous; + // http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=42321443 // 1 需要用户判断是否拥堵 进行UGC问答 private int infoCheckNode; @@ -200,6 +202,14 @@ public class MarkerExploreWay implements Serializable { this.infoCheckNode = infoCheckNode; } + public boolean isFabulous() { + return fabulous; + } + + public void setFabulous(boolean fabulous) { + this.fabulous = fabulous; + } + @Override public String toString() { return "MarkerExploreWay{" + @@ -218,6 +228,7 @@ public class MarkerExploreWay implements Serializable { ", userInfo=" + userInfo + ", items=" + items + ", uploadType='" + uploadType + '\'' + + ", fabulous=" + fabulous + ", infoCheckNode=" + infoCheckNode + '}'; } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XEventZanData.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XEventZanData.java new file mode 100644 index 0000000000..0301db0b9a --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XEventZanData.java @@ -0,0 +1,51 @@ +package com.mogo.module.common.entity; + +import com.mogo.utils.sqlite.annotation.DbDatabase; +import com.mogo.utils.sqlite.annotation.DbField; +import com.mogo.utils.sqlite.annotation.DbTable; + +/** + * V2X 被点赞的事件 + * + * @author donghongyu + */ +@DbDatabase(dbName = "MoGoScenario.db") +@DbTable(tableName = "tb_event_zan") +public class V2XEventZanData { + + /** + * 事件ID + */ + @DbField(fieldName = "eventId") + public String eventId; + + /** + * 触发时间 + */ + @DbField(fieldName = "triggerTime") + public Long triggerTime; + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public Long getTriggerTime() { + return triggerTime; + } + + public void setTriggerTime(Long triggerTime) { + this.triggerTime = triggerTime; + } + + @Override + public String toString() { + return "V2XEventZanData{" + + "eventId=" + eventId + + ", triggerTime=" + triggerTime + + '}'; + } +} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XBaseViewHolder.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XBaseViewHolder.java index daf41e1b83..475b80bfde 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XBaseViewHolder.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XBaseViewHolder.java @@ -1,6 +1,5 @@ package com.mogo.module.v2x.adapter.holder; -import android.content.Intent; import android.util.Log; import android.view.View; @@ -16,19 +15,20 @@ import com.mogo.map.navi.MogoTraffic; import com.mogo.module.carchattingprovider.ICarsChattingProvider; import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerLocation; +import com.mogo.module.common.entity.V2XEventZanData; import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.utils.ChartingUtil; import com.mogo.module.v2x.utils.RoadConditionUtils; +import com.mogo.module.v2x.utils.TimeUtils; import com.mogo.module.v2x.utils.TrackUtils; +import com.mogo.module.v2x.utils.V2XSQLiteUtils; import com.mogo.module.v2x.utils.V2XUtils; import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; import com.zhidao.carchattingprovider.CallChattingProviderConstant; import com.zhidao.carchattingprovider.MogoDriverInfo; -import java.util.HashMap; - import static com.mogo.module.v2x.V2XConst.MODULE_NAME; /** @@ -68,10 +68,18 @@ public abstract class V2XBaseViewHolder AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已点赞", null); showTip("已点赞"); if (noveltyInfo != null) { + // 调用网络API接口 V2XServiceManager.getV2XMarkerService() .getV2XRefreshModel() .giveLikeLiveVideo(null, noveltyInfo.getSn()); + V2XEventZanData v2XEventZanData = new V2XEventZanData(); + v2XEventZanData.setEventId(noveltyInfo.getInfoId()); + v2XEventZanData.setTriggerTime(TimeUtils.getNowMills()); + V2XSQLiteUtils.saveEventZanLocalStory(v2XEventZanData); + + + // 上报数据统计 TrackUtils.trackV2xRoadEvent( noveltyInfo.getInfoId(), noveltyInfo.getSn(), @@ -84,23 +92,23 @@ public abstract class V2XBaseViewHolder } public void triggerIVReportHead(MarkerExploreWay noveltyInfo) { - Log.d(TAG,"点击头像"+mCarsChattingProvider); + Log.d(TAG, "点击头像" + mCarsChattingProvider); try { mCarsChattingProvider = (ICarsChattingProvider) ARouter.getInstance().build(CallChattingProviderConstant.CAR_CALL_PROVIDER).navigation(); MogoDriverInfo mogoDriverInfo = new MogoDriverInfo(); int ageNumber = noveltyInfo.getUserInfo().getAgeNumber(); mogoDriverInfo.setAge(ageNumber); String gender = noveltyInfo.getUserInfo().getGender(); - mogoDriverInfo.setGender(gender != null ? gender:null); + mogoDriverInfo.setGender(gender != null ? gender : null); String sn = noveltyInfo.getUserInfo().getSn(); - mogoDriverInfo.setSn(sn != null ? sn:""); + mogoDriverInfo.setSn(sn != null ? sn : ""); String name = noveltyInfo.getUserInfo().getUserName(); - mogoDriverInfo.setUserName(name != null ? name:""); + mogoDriverInfo.setUserName(name != null ? name : ""); mogoDriverInfo.setUserHead(noveltyInfo.getUserInfo().getUserHead()); mCarsChattingProvider.showUserWindow(MODULE_NAME, mogoDriverInfo, this.itemView.getContext()); } catch (Exception e) { - Log.d(TAG,"点击头像发生错误--triggerIVReportHead"+e); + Log.d(TAG, "点击头像发生错误--triggerIVReportHead" + e); e.printStackTrace(); } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java index d92b98d136..19376eb451 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java @@ -24,10 +24,9 @@ import com.mogo.module.v2x.scenario.scene.livecar.V2XRoadLiveCarScenario; import com.mogo.module.v2x.scenario.scene.road.V2XRoadEventScenario; import com.mogo.module.v2x.scenario.scene.road.V2XRoadEventWindow; import com.mogo.module.v2x.scenario.scene.road.V2XRoadVideoCarScenario; -import com.mogo.module.v2x.scenario.scene.road.V2XRoadVideoWindow; import com.mogo.module.v2x.utils.ChartingUtil; import com.mogo.module.v2x.utils.EventTypeUtils; -import com.mogo.module.v2x.utils.SpanUtils; +import com.mogo.module.v2x.utils.V2XSQLiteUtils; import com.mogo.module.v2x.view.HeartLikeView; import com.mogo.module.v2x.voice.V2XVoiceCallbackListener; import com.mogo.module.v2x.voice.V2XVoiceConstants; @@ -256,7 +255,12 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { ivEventReportTrue.setVisibility(GONE); ivEventReportErr.setVisibility(GONE); - ivEventZan.setVisibility(VISIBLE); + + if (V2XSQLiteUtils.isZanEvent(mNoveltyInfo.getInfoId())) { + ivEventZan.setVisibility(GONE); + } else { + ivEventZan.setVisibility(VISIBLE); + } // 用户上报的才会展示拨打电话 if (!TextUtils.isEmpty(mNoveltyInfo.getUploadType()) 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 1be148ea12..374db86fa8 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 @@ -1,5 +1,6 @@ package com.mogo.module.v2x.utils; +import com.mogo.module.common.entity.V2XEventZanData; import com.mogo.module.common.entity.V2XHistoryScenarioData; import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.fragment.V2XEventPanelFragment; @@ -21,6 +22,11 @@ public class V2XSQLiteUtils { */ private static SQLIDao mScenarioHistoryDao; + /** + * 点赞数据管理 + */ + private static SQLIDao mV2XEventZanDao; + /** * 场景数据管理 */ @@ -36,6 +42,21 @@ public class V2XSQLiteUtils { return mScenarioHistoryDao; } + /** + * 点赞数据管理 + */ + public static SQLIDao getV2XEventZanDao() { + if (mV2XEventZanDao == null) { + synchronized (V2XSQLiteUtils.class) { + if (mV2XEventZanDao == null) { + mV2XEventZanDao = SQLDaoFactory.Companion.getInstance() + .getBaseDao(V2XUtils.getApp(), V2XEventZanData.class); + } + } + } + return mV2XEventZanDao; + } + /** * 删除数据库中存储的昨天的数据 */ @@ -153,4 +174,48 @@ public class V2XSQLiteUtils { e.printStackTrace(); } } + + /** + * 存储本地数据 + * + * @param v2XEventZanData 要存储的场景 + */ + public static void saveEventZanLocalStory(V2XEventZanData v2XEventZanData) { + try { + if (!isZanEvent(v2XEventZanData.eventId)) { + // 进行数据库存储 + V2XSQLiteUtils.getV2XEventZanDao().insert(v2XEventZanData); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 判断是否已经存在 + * + * @param eventId 要判断的事件ID + * @return true-已存在,false-没存在 + */ + public static boolean isZanEvent(String eventId) { + try { + // 查询数据库,判断是否存在 + for (V2XEventZanData eventZanDatum : getEventZanData()) { + if (eventZanDatum.eventId.equals(eventId)) { + return true; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + /** + * 查询当天的V2X数据 + */ + public static List getEventZanData() { + return getV2XEventZanDao().query(new V2XEventZanData()); + } + } diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml index 99867b46ab..bc25522ee9 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml @@ -161,7 +161,7 @@ android:layout_width="@dimen/module_v2x_event_button_size_detail" android:layout_height="@dimen/module_v2x_event_button_size_detail" android:padding="@dimen/dp_15" - android:src="@drawable/v2x_selector_icon_report_err_light" + android:src="@drawable/v2x_selector_icon_report_err" android:visibility="gone" app:layout_constraintBottom_toBottomOf="@+id/ivEventLive" app:layout_constraintStart_toEndOf="@id/ivEventReportTrue"