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 |   53 +++++++++++++++++---------
 src/test/java/cc/mrbird/febs/ProfitTest.java                                        |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java  |   19 ++++++---
 3 files changed, 47 insertions(+), 27 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
index 225e870..98039bd 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
@@ -318,14 +318,19 @@
             mallElectronicFenceAdd.setServiceId(serviceId);
             mallElectronicFenceMapper.insert(mallElectronicFenceAdd);
         }else{
-            String fenceUpdate = iMallElectronicFenceService.fenceUpdate(xcxProperties.getGaodeKey(), serviceId,
-                    mallElectronicFence.getGid(), mallElectronicFence.getFenceName(),
-                    adminLeaderAddFenceDto.getLonglatiarr());
-            if("fail".equals(fenceUpdate)){
-                return new FebsResponse().fail().message("高德地图更新多边形围栏失败");
+            //删除电子围栏
+            if(StrUtil.isEmpty(adminLeaderAddFenceDto.getLonglatiarr())){
+                iMallElectronicFenceService.fenceDelete(xcxProperties.getGaodeKey(),serviceId,mallElectronicFence.getGid());
+            }else{
+                String fenceUpdate = iMallElectronicFenceService.fenceUpdate(xcxProperties.getGaodeKey(), serviceId,
+                        mallElectronicFence.getGid(), mallElectronicFence.getFenceName(),
+                        adminLeaderAddFenceDto.getLonglatiarr());
+                if("fail".equals(fenceUpdate)){
+                    return new FebsResponse().fail().message("高德地图更新多边形围栏失败");
+                }
+                mallElectronicFence.setLonglatiarr(adminLeaderAddFenceDto.getLonglatiarr());
+                mallElectronicFenceMapper.updateById(mallElectronicFence);
             }
-            mallElectronicFence.setLonglatiarr(adminLeaderAddFenceDto.getLonglatiarr());
-            mallElectronicFenceMapper.updateById(mallElectronicFence);
         }
         return new FebsResponse().success();
     }
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 4ae5911..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
@@ -208,23 +208,39 @@
             return "fail";
         }
     }
-
-    @Override
-    public String fenceDelete(String gaodeKey, String serviceId, String fenceId) {
-        String url = "https://tsapi.amap.com/v1/track/geofence/delete";
+    //电子围栏删除
+    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<>();
-        //高德Key
-        //用户在高德地图官网申请Web服务API类型Key
         map.put("key",gaodeKey);
-        //服务唯一编号
-        //sid为猎鹰service唯一编号
-        map.put("sid",serviceId);
-        //围栏id
-        //围栏唯一标识,指定要更新的围栏
+        map.put("sid",sid);
         map.put("gfids",fenceId);
         String  param= JSON.toJSONString(map);
-        log.info("删除围栏"+param);
+        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?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);
@@ -232,15 +248,14 @@
             e.printStackTrace();
         }
         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;
-        }else{
+        System.out.println(maps);
+        String errcode = maps.get("errcode").toString();
+        if(!"10000".equals(errcode)){
             return "fail";
+        }else{
+            return maps.toString();
         }
     }
 
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index d03f197..a23900d 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -219,7 +219,7 @@
 //        trackServiceInfo("e024c63342930addc57189c8608cdb01",null);
 //        String e024c63342930addc57189c8608cdb01 = trackServiceDel("e024c63342930addc57189c8608cdb01", "792477");
 //        System.out.println(e024c63342930addc57189c8608cdb01);
-        String ss = fenceDel("95ede7157929f5f6b6c758971be924b1", "795278","798477");
+        String ss = fenceDel("95ede7157929f5f6b6c758971be924b1", "795278","795554");
         System.out.println(ss);
     }
 

--
Gitblit v1.9.1