【蘑菇出行1.1.7】路况仍可以被重复点赞,且点赞语音播报不正确
http://jira.zhidaohulian.com/browse/FX-528
v2x事件弹窗点赞,点击第二次同样提示”以点赞“
http://jira.zhidaohulian.com/browse/D80XCD-1587
This commit is contained in:
董宏宇
2020-11-09 12:46:04 +08:00
parent 5061e893b5
commit d2856c7c48
6 changed files with 151 additions and 12 deletions

View File

@@ -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 +
'}';
}

View File

@@ -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 +
'}';
}
}

View File

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

View File

@@ -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<V2XEventShowEntity> {
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())

View File

@@ -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<V2XHistoryScenarioData> mScenarioHistoryDao;
/**
* 点赞数据管理
*/
private static SQLIDao<V2XEventZanData> mV2XEventZanDao;
/**
* 场景数据管理
*/
@@ -36,6 +42,21 @@ public class V2XSQLiteUtils {
return mScenarioHistoryDao;
}
/**
* 点赞数据管理
*/
public static SQLIDao<V2XEventZanData> 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<V2XEventZanData> getEventZanData() {
return getV2XEventZanDao().query(new V2XEventZanData());
}
}

View File

@@ -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"