From 5c008a69072a6bf567586e59b26076a7768df037 Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 15 Nov 2021 16:16:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=9E=90=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/notice/NoticeTrafficDialog.java | 20 +- .../notice/network/NoticeApiService.java | 11 +- .../notice/network/NoticeNetWorkManager.java | 22 +- .../notice/network/NoticeRequest.java | 22 ++ .../test/TestNoticeBroadcastReceiver.kt | 2 +- .../data/notice/NoticeTrafficStyleInfo.java | 211 ++++++++++-------- 6 files changed, 172 insertions(+), 116 deletions(-) create mode 100644 core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeRequest.java diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java index 3e20055ccd..113031c682 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java @@ -55,7 +55,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog { private TextView connect;//连接 private NoticeTrafficAdapter adapter; private ArrayList dataArrayList = new ArrayList(); - private NoticeTrafficStyleInfo mTrafficStyleInfo; + private NoticeTrafficStyleInfo.NoticeTrafficStyleInfoResult mTrafficStyleInfo; public NoticeTrafficDialog(@NonNull Context context, NoticeTrafficStylePushData pushData) { super(context); @@ -156,7 +156,11 @@ public class NoticeTrafficDialog extends BaseFloatDialog { private void feedBackTraffic(int i) { CallerNoticeManager.getNoticeProvider().feedBackNoticeTraffic(mPushData.getInfoId(), MoGoAiCloudClientConfig.getInstance().getSn(), i); if (i == 1) { - startAutoPilot(); + try { + startAutoPilot(); + } catch (Exception e) { + e.printStackTrace(); + } } dismiss(); } @@ -364,15 +368,13 @@ public class NoticeTrafficDialog extends BaseFloatDialog { @Override public void callBackWithResult(NoticeTrafficStyleInfo trafficInfo) { Log.d(TAG, "交通事故详情::" + trafficInfo); - trafficInfo.setOperaStatus("已处理"); - trafficInfo.setTroubleReasonName("逆向"); - mTrafficStyleInfo = trafficInfo; - infoRefresh(trafficInfo); + mTrafficStyleInfo = trafficInfo.getResult(); + infoRefresh(mTrafficStyleInfo); } }); } - private void infoRefresh(NoticeTrafficStyleInfo info) { + private void infoRefresh(NoticeTrafficStyleInfo.NoticeTrafficStyleInfoResult info) { if (dataArrayList.size() > 0) { dataArrayList.clear(); } @@ -403,7 +405,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog { NoticeValue reason = new NoticeValue(); reason.setKey("事故原因:"); - reason.setValue(info.getTroubleReasonName()); + reason.setValue(info.getReason()); dataArrayList.add(reason); NoticeValue status = new NoticeValue(); @@ -417,7 +419,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog { dataArrayList.add(location); NoticeValue style = new NoticeValue(); - style.setKey("事故类型:"); + style.setKey("事故等级:"); style.setValue(info.getTroubleTypeName()); dataArrayList.add(style); diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeApiService.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeApiService.java index bb9046b992..bb4ca9592f 100644 --- a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeApiService.java +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeApiService.java @@ -7,9 +7,12 @@ import com.mogo.eagle.core.data.notice.NoticeTrafficStyleInfo; import java.util.Map; import io.reactivex.Observable; +import okhttp3.RequestBody; +import retrofit2.http.Body; import retrofit2.http.FieldMap; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; +import retrofit2.http.Headers; import retrofit2.http.POST; import retrofit2.http.QueryMap; @@ -22,12 +25,12 @@ public interface NoticeApiService { /** * 获取道路事故详情 * - * @param accidentParameters 请求数据(sn;infoId) - * @return {@link BaseData} + * @param requestBody 请求体(infoId 交警任务id) + * @return {@link NoticeTrafficStyleInfo} */ - @FormUrlEncoded + @Headers("Content-Type:application/json;charset=UTF-8") @POST("/deva/accidentInfoManage/queryMyAccidentHandleInfo/server/v1") - Observable getAccidentInfo(@FieldMap Map accidentParameters); + Observable getAccidentInfo(@Body RequestBody requestBody); /** diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeNetWorkManager.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeNetWorkManager.java index da2585dee1..4e17ff5db4 100644 --- a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeNetWorkManager.java +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeNetWorkManager.java @@ -1,18 +1,24 @@ package com.mogo.eagle.core.function.notice.network; +import android.content.Context; import android.util.ArrayMap; import android.util.Log; +import com.google.gson.Gson; import com.mogo.cloud.network.NetConstants; import com.mogo.cloud.network.RetrofitFactory; import com.mogo.cloud.passport.MoGoAiCloudClient; +import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.network.ParamsProvider; import com.mogo.eagle.core.data.BaseData; import com.mogo.eagle.core.data.notice.NoticeNormalDetail; import com.mogo.eagle.core.data.notice.NoticeTrafficStyleInfo; +import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData; import com.mogo.eagle.core.function.api.notice.NoticeNetCallBack; +import com.mogo.module.common.drawer.PushRoadConditionDrawer; import com.mogo.utils.logger.Logger; +import com.mogo.utils.network.utils.GsonUtil; import java.util.HashMap; import java.util.Map; @@ -23,6 +29,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.annotations.NonNull; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.RequestBody; /** * @author Jing @@ -54,14 +62,14 @@ public class NoticeNetWorkManager { * 获取事故详细信息 * * @param infoId 事故id - * @param sn 车机sn * @param callBack 回调 */ - public void requestAccidentInfo(String infoId, String sn, NoticeNetCallBack callBack) { - Map map = new HashMap<>(); - map.put("sn", sn); - map.put("infoId", infoId); - mNoticeApiService.getAccidentInfo(map) + public void requestAccidentInfo(String infoId, String sn,NoticeNetCallBack callBack) { + + NoticeRequest request = new NoticeRequest(infoId); + RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), + GsonUtil.jsonFromObject(request)); + mNoticeApiService.getAccidentInfo(requestBody) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @@ -72,6 +80,7 @@ public class NoticeNetWorkManager { @Override public void onNext(@NonNull NoticeTrafficStyleInfo noticeTrafficStyleInfo) { + Log.d(TAG, "onNext:"+noticeTrafficStyleInfo); if (noticeTrafficStyleInfo != null) { callBack.callBackWithResult(noticeTrafficStyleInfo); } @@ -165,4 +174,5 @@ public class NoticeNetWorkManager { } + } diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeRequest.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeRequest.java new file mode 100644 index 0000000000..fd28d24d13 --- /dev/null +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeRequest.java @@ -0,0 +1,22 @@ +package com.mogo.eagle.core.function.notice.network; + +/** + * @author Jing + * @description 描述 + * @since: 11/15/21 + */ +public class NoticeRequest { + private String infoId; + + public NoticeRequest(String infoId) { + this.infoId = infoId; + } + + public String getInfoId() { + return infoId; + } + + public void setInfoId(String infoId) { + this.infoId = infoId; + } +} diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/test/TestNoticeBroadcastReceiver.kt b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/test/TestNoticeBroadcastReceiver.kt index 1b244171a7..facc8b59fd 100644 --- a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/test/TestNoticeBroadcastReceiver.kt +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/test/TestNoticeBroadcastReceiver.kt @@ -41,7 +41,7 @@ class TestNoticeBroadcastReceiver : BroadcastReceiver() { val video: String = "https://view.2amok.com/20200219/012d8e2a55f227e90d76056bb6aab5e4.mp4" pushData.poiImgUrl = video pushData.type = 1 - pushData.infoId = "909755160571400192" + pushData.infoId = "909821120032526336" CallerHmiManager.showTrafficBanner(pushData) } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeTrafficStyleInfo.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeTrafficStyleInfo.java index 85171dbf6a..43a3e379ff 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeTrafficStyleInfo.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeTrafficStyleInfo.java @@ -10,110 +10,129 @@ import java.io.Serializable; * @since: 10/26/21 */ public class NoticeTrafficStyleInfo extends BaseData { - private String infoId;//事故id - private String poiType;//事故类型 - private long dataCreateTime;//事故发生时间 - private long dataHandleTime;//事故处理时间 - private String operaStatus;//事故处理状态 - private String troubleReasonName;//事故原因 - private String uploadAddress;//事故地点名称 - private String troubleTypeName;//事故等级描述 - private double lat;//纬度 - private double lon;//经度 + private NoticeTrafficStyleInfoResult mResult; - public String getInfoId() { - return infoId; + public NoticeTrafficStyleInfoResult getResult() { + return mResult; } - public void setInfoId(String infoId) { - this.infoId = infoId; - } - - public String getPoiType() { - return poiType; - } - - public void setPoiType(String poiType) { - this.poiType = poiType; - } - - public long getDataCreateTime() { - return dataCreateTime; - } - - public void setDataCreateTime(long dataCreateTime) { - this.dataCreateTime = dataCreateTime; - } - - public long getDataHandleTime() { - return dataHandleTime; - } - - public void setDataHandleTime(long dataHandleTime) { - this.dataHandleTime = dataHandleTime; - } - - public String getOperaStatus() { - return operaStatus; - } - - public void setOperaStatus(String operaStatus) { - this.operaStatus = operaStatus; - } - - public String getTroubleReasonName() { - return troubleReasonName; - } - - public void setTroubleReasonName(String troubleReasonName) { - this.troubleReasonName = troubleReasonName; - } - - public String getUploadAddress() { - return uploadAddress; - } - - public void setUploadAddress(String uploadAddress) { - this.uploadAddress = uploadAddress; - } - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLon() { - return lon; - } - - public void setLon(double lon) { - this.lon = lon; - } - - public String getTroubleTypeName() { - return troubleTypeName; - } - - public void setTroubleTypeName(String troubleTypeName) { - this.troubleTypeName = troubleTypeName; + public void setResult(NoticeTrafficStyleInfoResult result) { + mResult = result; } @Override public String toString() { return "NoticeTrafficStyleInfo{" + - "infoId='" + infoId + '\'' + - ", poiType='" + poiType + '\'' + - ", dataCreateTime=" + dataCreateTime + - ", dataHandleTime=" + dataHandleTime + - ", operaStatus='" + operaStatus + '\'' + - ", troubleReasonName='" + troubleReasonName + '\'' + - ", uploadAddress='" + uploadAddress + '\'' + - ", troubleTypeName='" + troubleTypeName + '\'' + - ", lat=" + lat + - ", lon=" + lon + + "mResult=" + mResult + '}'; } + + public class NoticeTrafficStyleInfoResult extends BaseData{ + private String infoId;//事故id + private String poiType;//事故类型 + private long dataCreateTime;//事故发生时间 + private long dataHandleTime;//事故处理时间 + private String operaStatus;//事故处理状态 + private String reason;//事故原因 + private String uploadAddress;//事故地点名称 + private String troubleTypeName;//事故等级描述 + private double lat;//纬度 + private double lon;//经度 + + public String getInfoId() { + return infoId; + } + + public void setInfoId(String infoId) { + this.infoId = infoId; + } + + public String getPoiType() { + return poiType; + } + + public void setPoiType(String poiType) { + this.poiType = poiType; + } + + public long getDataCreateTime() { + return dataCreateTime; + } + + public void setDataCreateTime(long dataCreateTime) { + this.dataCreateTime = dataCreateTime; + } + + public long getDataHandleTime() { + return dataHandleTime; + } + + public void setDataHandleTime(long dataHandleTime) { + this.dataHandleTime = dataHandleTime; + } + + public String getOperaStatus() { + return operaStatus; + } + + public void setOperaStatus(String operaStatus) { + this.operaStatus = operaStatus; + } + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public String getUploadAddress() { + return uploadAddress; + } + + public void setUploadAddress(String uploadAddress) { + this.uploadAddress = uploadAddress; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLon() { + return lon; + } + + public void setLon(double lon) { + this.lon = lon; + } + + public String getTroubleTypeName() { + return troubleTypeName; + } + + public void setTroubleTypeName(String troubleTypeName) { + this.troubleTypeName = troubleTypeName; + } + + @Override + public String toString() { + return "NoticeTrafficStyleInfo{" + + "infoId='" + infoId + '\'' + + ", poiType='" + poiType + '\'' + + ", dataCreateTime=" + dataCreateTime + + ", dataHandleTime=" + dataHandleTime + + ", operaStatus='" + operaStatus + '\'' + + ", reason='" + reason + '\'' + + ", uploadAddress='" + uploadAddress + '\'' + + ", troubleTypeName='" + troubleTypeName + '\'' + + ", lat=" + lat + + ", lon=" + lon + + '}'; + } + } }