From cf0f93a4c122121b205ab52bb5fc3b3b93682670 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 22 Sep 2022 16:19:57 +0800 Subject: [PATCH] 20220902 --- src/main/java/cc/mrbird/febs/mall/service/impl/IMallElectronicFenceServiceImpl.java | 91 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 80 insertions(+), 11 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/IMallElectronicFenceServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/IMallElectronicFenceServiceImpl.java index 5c07a1c..cbc6960 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/IMallElectronicFenceServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/IMallElectronicFenceServiceImpl.java @@ -4,6 +4,8 @@ import cc.mrbird.febs.mall.entity.MallElectronicFence; import cc.mrbird.febs.mall.mapper.MallElectronicFenceMapper; import cc.mrbird.febs.mall.service.IMallElectronicFenceService; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -206,10 +208,60 @@ return "fail"; } } - + //电子围栏删除 + public String fenceDel(String gaodeKey, String sid,String fenceId) { + String url = "https://tsapi.amap.com/v1/track/geofence/delete?key="+gaodeKey+"&sid="+sid+"&gfids="+fenceId; + HttpPost httpPost = new HttpPost(url); + Map<String,String> map = new HashMap<>(); + map.put("key",gaodeKey); + map.put("sid",sid); + map.put("gfids",fenceId); + String param= JSON.toJSONString(map); + String result = null; + try { + result = HttpCurlUtil.sendPostHttp(url, param); + } catch (IOException e) { + e.printStackTrace(); + } + cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); + System.out.println(maps); + String errcode = maps.get("errcode").toString(); + if(!"10000".equals(errcode)){ + return "fail"; + }else{ + return maps.toString(); + } + } @Override public String fenceDelete(String gaodeKey, String serviceId, String fenceId) { - String url = "https://tsapi.amap.com/v1/track/geofence/delete"; + String url = "https://tsapi.amap.com/v1/track/geofence/delete?key="+gaodeKey+"&sid="+serviceId+"&gfids="+fenceId; + HttpPost httpPost = new HttpPost(url); + Map<String,String> map = new HashMap<>(); + map.put("key",gaodeKey); + map.put("sid",serviceId); + map.put("gfids",fenceId); + String param= JSON.toJSONString(map); + String result = null; + try { + result = HttpCurlUtil.sendPostHttp(url, param); + } catch (IOException e) { + e.printStackTrace(); + } + log.info("删除围栏"+result); + + cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); + System.out.println(maps); + String errcode = maps.get("errcode").toString(); + if(!"10000".equals(errcode)){ + return "fail"; + }else{ + return maps.toString(); + } + } + + @Override + public String fenceToLocation(String gaodeKey, String serviceId, String locationLonglat, String fenceId) { + String url = "https://tsapi.amap.com/v1/track/geofence/status/location"; HttpPost httpPost = new HttpPost(url); Map<String,String> map = new HashMap<>(); //高德Key @@ -218,27 +270,44 @@ //服务唯一编号 //sid为猎鹰service唯一编号 map.put("sid",serviceId); - //围栏id - //围栏唯一标识,指定要更新的围栏 + //指定坐标 + //格式:x,y + map.put("location",locationLonglat); + //围栏的唯一标识 + //支持一次传入多个,以","分割; + //单次最多支持100个,如超出将只截取前100个作为输入。 map.put("gfids",fenceId); - String param= JSON.toJSONString(map); - log.info("删除围栏"+param); + log.info("查询指定坐标与围栏关系"+JSON.toJSONString(map)); String result = null; try { - result = HttpCurlUtil.sendPostHttp(url, param); + result = HttpCurlUtil.sendGetHttp(url, map); } catch (IOException e) { e.printStackTrace(); } - log.info("删除围栏"+result); + log.info("查询指定坐标与围栏关系"+result); cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); String errCode = maps.get("errcode").toString(); if("10000".equals(errCode)){ String dataStr = maps.get("data").toString(); - cn.hutool.json.JSONObject gfidsJson = JSONUtil.parseObj(dataStr); - String gfidsStr = gfidsJson.get("gfids").toString(); - return gfidsStr; + cn.hutool.json.JSONObject dataResults = JSONUtil.parseObj(dataStr); + String resultsStr = dataResults.get("results").toString(); + return resultsStr; }else{ return "fail"; } } + + public static void main(String[] args) { + String result = "{\"data\":{\"count\":1,\"results\":[{\"gfid\":800899,\"gfname\":\"87053658_fence\",\"in\":0}]},\"errcode\":10000,\"errdetail\":null,\"errmsg\":\"OK\"}"; + cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); + String dataStr = maps.get("data").toString(); + cn.hutool.json.JSONObject dataResults = JSONUtil.parseObj(dataStr); + String resultsStr = dataResults.get("results").toString(); + JSONArray jsonArray = JSONUtil.parseArray(resultsStr); + System.out.print(jsonArray); + Object o = jsonArray.get(0); + JSONObject jsonObject1 = JSONUtil.parseObj(jsonArray.get(0)); + String in = jsonObject1.get("in").toString(); + System.out.print(in); + } } -- Gitblit v1.9.1