From 866b1e4d88a7121c22bfb13502a9028de342567a Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 02 九月 2023 20:28:24 +0800
Subject: [PATCH] 数简-添加删除服务接口

---
 src/main/java/com/moon/server/helper/RestHelper.java           |    9 ++++
 src/main/java/com/moon/server/service/data/ShuJianService.java |  103 +++++++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 95 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/moon/server/helper/RestHelper.java b/src/main/java/com/moon/server/helper/RestHelper.java
index d23fa83..32828db 100644
--- a/src/main/java/com/moon/server/helper/RestHelper.java
+++ b/src/main/java/com/moon/server/helper/RestHelper.java
@@ -255,4 +255,13 @@
 
         rest.delete(uri);
     }
+
+    /**
+     * DELETE璇锋眰锛圧EST锛�
+     */
+    public static void deleteForRest(String uri, Map<String, Object> map) {
+        RestTemplate rest = getRestTemplate();
+
+        rest.delete(uri, map);
+    }
 }
diff --git a/src/main/java/com/moon/server/service/data/ShuJianService.java b/src/main/java/com/moon/server/service/data/ShuJianService.java
index 9975975..891c410 100644
--- a/src/main/java/com/moon/server/service/data/ShuJianService.java
+++ b/src/main/java/com/moon/server/service/data/ShuJianService.java
@@ -1,22 +1,28 @@
 package com.moon.server.service.data;
 
-import com.alibaba.druid.support.spring.stat.annotation.Stat;
+import com.alibaba.fastjson.JSON;
 import com.moon.server.entity.all.StaticData;
 import com.moon.server.entity.ctrl.PubEntity;
 import com.moon.server.entity.data.PublishEntity;
 import com.moon.server.entity.shujian.*;
 import com.moon.server.helper.HttpHelper;
+import com.moon.server.helper.RestHelper;
 import com.moon.server.helper.StringHelper;
-import io.swagger.models.auth.In;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.Field;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 鏁扮畝.鏈嶅姟
@@ -54,18 +60,18 @@
      */
     public Integer insertSjService(PubEntity pubEntity, HttpServletRequest req, HttpServletResponse res) {
         CreateLayerEntity layerEntity = createLayerEntity(pubEntity);
-        LayerResultEntity layerResult = postLayerEntity(layerEntity);
-        if (null == layerResult || !StaticData.SUCCESS.equals(layerResult.getStatus()) || null == layerResult.getResult().getLayer_id()) {
+        Integer layerId = postLayerEntity(layerEntity);
+        if (null == layerId) {
             return 0;
         }
 
         CreateServiceEntity serviceEntity = createServiceEntity(pubEntity);
-        ServiceResultEntity serviceResult = postServiceEntity(serviceEntity);
-        if (null == serviceResult || !StaticData.SUCCESS.equals(serviceResult.getStatus()) || null == serviceResult.getResult()) {
+        Integer serviceId = postServiceEntity(serviceEntity);
+        if (null == serviceId) {
             return 0;
         }
 
-        PublishEntity publishEntity = createPublishEntity(pubEntity, layerResult.getResult().getLayer_id(), serviceResult.getResult());
+        PublishEntity publishEntity = createPublishEntity(pubEntity, layerId, serviceId);
 
         return publishService.insert(publishEntity);
     }
@@ -102,10 +108,19 @@
     /**
      * 鍙戦�佸浘灞傚疄浣撶被
      */
-    public LayerResultEntity postLayerEntity(CreateLayerEntity layerEntity) {
-        //
+    public Integer postLayerEntity(CreateLayerEntity layerEntity) {
+        Map<String, Object> map = getMapData(layerEntity);
+        String url = String.format("%s/sj_raster/sj_raster/v6/api/layer?%s", sjUrl, ak);
 
-        return new LayerResultEntity();
+        String str = RestHelper.postForRest(url, map);
+        if (StringHelper.isEmpty(str)) {
+            return null;
+        }
+
+        LayerResultEntity rs = JSON.parseObject(str, LayerResultEntity.class);
+        boolean flag = null == rs || !StaticData.SUCCESS.equals(rs.getStatus()) || null == rs.getResult().getLayer_id();
+
+        return flag ? null : rs.getResult().getLayer_id();
     }
 
     /**
@@ -134,10 +149,19 @@
     /**
      * 鍙戦�佸浘灞傚疄浣撶被
      */
-    public ServiceResultEntity postServiceEntity(CreateServiceEntity serviceEntity) {
-        //
+    public Integer postServiceEntity(CreateServiceEntity serviceEntity) {
+        Map<String, Object> map = getMapData(serviceEntity);
+        String url = String.format("%s/sj_raster/v6/api/service?op=create_ex&%s", sjUrl, ak);
 
-        return new ServiceResultEntity();
+        String str = RestHelper.postForRest(url, map);
+        if (StringHelper.isEmpty(str)) {
+            return null;
+        }
+
+        ServiceResultEntity rs = JSON.parseObject(str, ServiceResultEntity.class);
+        boolean flag = null == rs || !StaticData.SUCCESS.equals(rs.getStatus()) || null == rs.getResult();
+
+        return flag ? null : rs.getResult();
     }
 
     /**
@@ -190,28 +214,73 @@
     /**
      * 鍒犻櫎鍥惧眰
      */
-    public void deleteLayer(Integer id) {
+    public boolean deleteLayer(Integer id) {
         try {
             DeleteEntity entity = new DeleteEntity();
             entity.getId_list().add(id);
 
-            //..
+            Map<String, Object> map = getMapData(entity);
+            String url = String.format("%s/sj_raster/sj_raster/v6/api/layer?%s", sjUrl, ak);
+
+            DeleteResultEntity rs = deleteObject(url, map);
+
+            return null != rs && StaticData.SUCCESS.equals(rs.getStatus());
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
+            return false;
         }
     }
 
     /**
      * 鍒犻櫎鏈嶅姟
      */
-    public void deleteService(Integer id) {
+    public boolean deleteService(Integer id) {
         try {
             DeleteEntity entity = new DeleteEntity();
             entity.getId_list().add(id);
 
-            //..
+            Map<String, Object> map = getMapData(entity);
+            String url = String.format("%s/sj_raster/sj_raster/v6/api/service?%s", sjUrl, ak);
+
+            DeleteResultEntity rs = deleteObject(url, map);
+
+            return null != rs && StaticData.SUCCESS.equals(rs.getStatus());
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
+            return false;
         }
     }
+
+    public DeleteResultEntity deleteObject(String url, Map<String, Object> map) {
+        RestTemplate rest = RestHelper.getRestTemplate();
+
+        ResponseEntity<DeleteResultEntity> rs = rest.exchange(url, HttpMethod.DELETE, null, DeleteResultEntity.class, map);
+
+        return rs.getBody();
+    }
+
+    /**
+     * 鑾峰彇Map鏁版嵁
+     */
+    public <T> Map<String, Object> getMapData(T t) {
+        Map<String, Object> map = new HashMap<>(1);
+
+        Field[] fields = t.getClass().getDeclaredFields();
+        for (Field field : fields) {
+            try {
+                if ("serialVersionUID".equals(field.getName())) {
+                    continue;
+                }
+
+                field.setAccessible(true);
+                Object obj = field.get(t);
+
+                map.put(field.getName(), obj);
+            } catch (Exception ex) {
+                //
+            }
+        }
+
+        return map;
+    }
 }

--
Gitblit v1.9.3