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"