From b49a54003acba4d83d6e23485f71154d45a6f2b4 Mon Sep 17 00:00:00 2001 From: zhuangyan Date: Mon, 9 Nov 2020 17:43:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=81=93=E8=B7=AF=E6=8B=A5?= =?UTF-8?q?=E5=A0=B5=E4=B8=8A=E6=8A=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/share/GaoDeAimlessProvider.java | 50 +++++++++++++++-- .../module/share/constant/HttpConstant.kt | 14 +++++ .../module/share/net/TrafficApiService.java | 17 ++++++ .../module/share/net/TrafficModelData.java | 54 +++++++++++++++++-- 4 files changed, 127 insertions(+), 8 deletions(-) diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/GaoDeAimlessProvider.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/GaoDeAimlessProvider.java index c38dce2ac8..1c83df590f 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/GaoDeAimlessProvider.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/GaoDeAimlessProvider.java @@ -1,16 +1,27 @@ package com.mogo.module.share; import android.content.Context; +import android.nfc.Tag; import android.util.Log; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.template.IProvider; +import com.amap.api.services.nearby.UploadInfoCallback; +import com.google.gson.JsonObject; +import com.mogo.map.MogoLatLng; import com.mogo.map.navi.IMogoAimlessModeListener; import com.mogo.map.navi.MogoCongestionInfo; +import com.mogo.map.navi.MogoCongestionLink; import com.mogo.map.navi.MogoTraffic; import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.entity.RoadTrafficSegment; +import com.mogo.module.common.entity.RoadTrafficStatus; +import com.mogo.module.share.net.TrafficModelData; import com.mogo.service.MogoServicePaths; import com.mogo.utils.network.utils.GsonUtil; +import java.util.ArrayList; +import java.util.List; + /** * TODO 高德巡航信息监听,并将拥堵信息上报到服务端 @@ -18,10 +29,18 @@ import com.mogo.utils.network.utils.GsonUtil; @Route(path = MogoServicePaths.PATH_GAODE_AIMLESS_SHARE) public class GaoDeAimlessProvider implements IProvider { private final String TAG = "GaoDeAimlessProvider"; + private TrafficModelData mTanluModelData; + List mlist = new ArrayList<>(); + RoadTrafficSegment roadTrafficSegment = new RoadTrafficSegment(); @Override public void init(Context context) { + Log.d(TAG, "provider init……"); + if (mTanluModelData == null) { + mTanluModelData = new TrafficModelData(); + } + // 开启巡航监听 MogoApisHandler.getInstance() .getApis() @@ -36,16 +55,41 @@ public class GaoDeAimlessProvider implements IProvider { .registerMogoAimlessModeListener(TAG, new IMogoAimlessModeListener() { @Override public void onUpdateTraffic2(MogoTraffic traffic) { - + Log.d(TAG, "onUpdateTraffic2 back……"); } @Override public void onUpdateCongestion(MogoCongestionInfo info) { - // TODO 上报给服务器 Log.d(TAG, GsonUtil.jsonFromObject(info)); - + UploadInfo(info); } }); } + + /** + * 上报拥堵信息 + * + * @param info + */ + private void UploadInfo(MogoCongestionInfo info) { + RoadTrafficStatus mStatusBean = new RoadTrafficStatus(); + mStatusBean.setLength(info.getLength()); + mStatusBean.setRoadName(info.getRoadName()); + mStatusBean.setStatus(info.getCongestionStatus()); + mStatusBean.setSegment(true); + + if (info.getCongestionLinks() != null && info.getCongestionLinks().size() > 0) { + mlist.clear(); + for (MogoCongestionLink data : info.getCongestionLinks() + ) { + roadTrafficSegment.setStatus(data.getCongestionStatus()); + roadTrafficSegment.setMogoLatLngList(data.getCoords()); + mlist.add(roadTrafficSegment); + } + mStatusBean.setRoadTrafficSegmentList(mlist); + } + mTanluModelData.UploadCongestionInfo(mStatusBean); + } + } diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/HttpConstant.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/HttpConstant.kt index 6e5e7aed7c..14604e5d95 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/HttpConstant.kt +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/HttpConstant.kt @@ -10,6 +10,10 @@ class HttpConstant { const val HOST_DEMO = "http://dzt-show.zhidaohulian.com" const val HOST_PRODUCT = "https://dzt.zhidaohulian.com" + const val TMC_HOST_TEST="http://dzt-test.zhidaozhixing.com" + const val TMC_HOST_DEMO="http://dzt-show.zhidaozhixing.com" + const val TMC_HOST_PRODUCT="http://dzt.zhidaozhixing.com" + @JvmStatic fun getNetHost(): String { return when (DebugConfig.getNetMode()) { @@ -19,6 +23,16 @@ class HttpConstant { else -> HOST_PRODUCT } } + + @JvmStatic + fun getTMCHost(): String { + return when (DebugConfig.getNetMode()) { + DebugConfig.NET_MODE_DEV -> TMC_HOST_TEST + DebugConfig.NET_MODE_QA -> TMC_HOST_TEST + DebugConfig.NET_MODE_DEMO -> TMC_HOST_DEMO + else -> TMC_HOST_PRODUCT + } + } } } \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TrafficApiService.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TrafficApiService.java index 2bb369a704..5fb607a299 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TrafficApiService.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TrafficApiService.java @@ -1,4 +1,21 @@ package com.mogo.module.share.net; +import com.mogo.commons.data.BaseData; + +import java.util.Map; + +import io.reactivex.Observable; +import retrofit2.http.FieldMap; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.POST; + public interface TrafficApiService { + /** + * 上报路况拥堵情况 + * + */ + @FormUrlEncoded + @POST("/yycp-tmcServer/tmcServer/car/reportTraffic/v1") + Observable UploadCongestionInfo(@FieldMap Map parames); + } diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TrafficModelData.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TrafficModelData.java index 2326b804de..e66e8d872b 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TrafficModelData.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TrafficModelData.java @@ -2,32 +2,76 @@ package com.mogo.module.share.net; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.AbsMogoApplication; +import com.mogo.commons.data.BaseData; import com.mogo.commons.network.ParamsProvider; +import com.mogo.commons.network.SubscribeImpl; import com.mogo.commons.network.Utils; +import com.mogo.module.common.entity.RoadTrafficStatus; import com.mogo.module.common.entity.UploadTrafficEntity; import com.mogo.module.share.constant.HttpConstant; import com.mogo.service.MogoServicePaths; import com.mogo.service.network.IMogoNetwork; +import com.mogo.utils.logger.Logger; +import com.mogo.utils.network.RequestOptions; import com.mogo.utils.network.utils.GsonUtil; import java.util.Map; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; + +import static com.mogo.commons.AbsMogoApplication.getApp; + public class TrafficModelData { private static final String TAG = "TrafficModelData"; private TrafficApiService mTrafficApiService; public TrafficModelData() { - IMogoNetwork network = (IMogoNetwork) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_NETWORK).navigation(AbsMogoApplication. - getApp().getApplicationContext()); - mTrafficApiService = network.create(TrafficApiService.class, HttpConstant.getNetHost()); + IMogoNetwork network = (IMogoNetwork) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_NETWORK).navigation(getApp().getApplicationContext()); + mTrafficApiService = network.create(TrafficApiService.class, HttpConstant.getTMCHost()); } public void uploadTrafficInfo(UploadTrafficEntity uploadTrafficEntity) { - Map params = new ParamsProvider.Builder(AbsMogoApplication. - getApp().getApplicationContext()) + Map params = new ParamsProvider.Builder(getApp().getApplicationContext()) .append("sn", Utils.getSn()) .append("data", GsonUtil.jsonFromObject(uploadTrafficEntity)) .build(); } + + + /** + * 拥堵信息上报 + * + * @param info 高的返回的拥堵信息对象 + * @param + */ + public void UploadCongestionInfo(RoadTrafficStatus info) { + + final ParamsProvider.Builder builder = new ParamsProvider.Builder( getApp().getApplicationContext()); + //TODO 添加参数 + Map parameters = builder.build(); + parameters.put("sn", Utils.getSn()); + parameters.put("data",GsonUtil.jsonFromObject(info)); + mTrafficApiService.UploadCongestionInfo(parameters) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create( getApp().getApplicationContext())) { + @Override + public void onError(Throwable e) { + super.onError(e); + Logger.d(TAG, "拥堵上报失败" + e.toString()); +// callback.UploadFail(e.getMessage(), -1); + } + + @Override + public void onSuccess(BaseData o) { + super.onSuccess(o); + Logger.d(TAG, "拥堵上报成功" + o.toString()); +// callback.UpLoadSuccess(o.msg.toString(), o.code); + + } + }); + + } }