From 61b0eefa5a1b6ff7d8b24b458b0c01e79fd21113 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期二, 05 九月 2023 14:06:16 +0800
Subject: [PATCH] 添加服务地址设置等

---
 src/main/java/com/moon/server/entity/all/StaticData.java             |    2 
 src/main/java/com/moon/server/entity/ctrl/PubEntity.java             |   27 +++++++--
 src/main/java/com/moon/server/entity/data/PublishEntity.java         |   10 +++
 src/main/java/com/moon/server/service/data/ShuJianService.java       |   69 ++++++++++++++++++++--
 src/main/java/com/moon/server/controller/data/PublishController.java |    2 
 src/main/resources/mapper/data/PublishMapper.xml                     |   12 ++--
 6 files changed, 101 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/moon/server/controller/data/PublishController.java b/src/main/java/com/moon/server/controller/data/PublishController.java
index 777b104..6e3c324 100644
--- a/src/main/java/com/moon/server/controller/data/PublishController.java
+++ b/src/main/java/com/moon/server/controller/data/PublishController.java
@@ -235,7 +235,7 @@
             }
 
             permsService.clearPermsCache();
-            Integer rows = shuJianService.updateSjService(entity, req, res);
+            Integer rows = shuJianService.updateSjService(entity);
 
             return success(rows);
         } catch (Exception ex) {
diff --git a/src/main/java/com/moon/server/entity/all/StaticData.java b/src/main/java/com/moon/server/entity/all/StaticData.java
index e2d4267..c25bc3a 100644
--- a/src/main/java/com/moon/server/entity/all/StaticData.java
+++ b/src/main/java/com/moon/server/entity/all/StaticData.java
@@ -138,6 +138,8 @@
 
     public final static String OSGB = ".osgb";
 
+    public final static String NULL = "null";
+
     public static String ADMIN = "admin";
 
     public final static String SYS_META = "sysmeta";
diff --git a/src/main/java/com/moon/server/entity/ctrl/PubEntity.java b/src/main/java/com/moon/server/entity/ctrl/PubEntity.java
index 82342ba..a58bf20 100644
--- a/src/main/java/com/moon/server/entity/ctrl/PubEntity.java
+++ b/src/main/java/com/moon/server/entity/ctrl/PubEntity.java
@@ -2,6 +2,7 @@
 
 import com.moon.server.entity.shujian.ColorTableEntity;
 import com.moon.server.entity.shujian.GradientColorTableEntity;
+import com.moon.server.helper.StringHelper;
 
 import java.io.Serializable;
 import java.util.List;
@@ -17,13 +18,19 @@
     public PubEntity() {
         min = 0;
         max = 18;
-        epsgCode = 104903;
+        epsg = 104903;
+        uuid = StringHelper.getGuid();
     }
 
     /**
      * 鍙戝竷ID
      */
     private Integer pubid;
+
+    /**
+     * 鍞竴閿�
+     */
+    private String uuid;
 
     /**
      * 绫诲瀷锛欴OM锛孌EM锛孷ector锛孧odel
@@ -48,7 +55,7 @@
     /**
      * EPSG缂栫爜
      */
-    private Integer epsgCode;
+    private Integer epsg;
 
     /**
      * 鐢ㄦ埛ID
@@ -98,6 +105,14 @@
         this.pubid = pubid;
     }
 
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+
     public String getType() {
         return type;
     }
@@ -130,12 +145,12 @@
         this.max = max;
     }
 
-    public Integer getEpsgCode() {
-        return epsgCode;
+    public Integer getEpsg() {
+        return epsg;
     }
 
-    public void setEpsgCode(Integer epsgCode) {
-        this.epsgCode = epsgCode;
+    public void setEpsg(Integer epsg) {
+        this.epsg = epsg;
     }
 
     public Integer getUserId() {
diff --git a/src/main/java/com/moon/server/entity/data/PublishEntity.java b/src/main/java/com/moon/server/entity/data/PublishEntity.java
index 3083ca0..e677e9e 100644
--- a/src/main/java/com/moon/server/entity/data/PublishEntity.java
+++ b/src/main/java/com/moon/server/entity/data/PublishEntity.java
@@ -16,6 +16,8 @@
 
     private Integer serviceid;
 
+    private String eventid;
+
     private String name;
 
     private String url;
@@ -91,6 +93,14 @@
         this.serviceid = serviceid;
     }
 
+    public String getEventid() {
+        return eventid;
+    }
+
+    public void setEventid(String eventid) {
+        this.eventid = eventid;
+    }
+
     public String getName() {
         return name;
     }
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 44e17d7..e75ac26 100644
--- a/src/main/java/com/moon/server/service/data/ShuJianService.java
+++ b/src/main/java/com/moon/server/service/data/ShuJianService.java
@@ -11,6 +11,7 @@
 import com.moon.server.helper.PathHelper;
 import com.moon.server.helper.RestHelper;
 import com.moon.server.helper.StringHelper;
+import com.moon.server.service.sys.ResService;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.beans.factory.annotation.Value;
@@ -41,6 +42,9 @@
     PathHelper pathHelper;
 
     @Resource
+    ResService resService;
+
+    @Resource
     MetaService metaService;
 
     @Resource
@@ -50,12 +54,18 @@
 
     public final static List<String> TYPES = new ArrayList<>(Arrays.asList("DOM", "DEM"));
 
+    private final static String DOM_FORMAT = "%s/sj_raster/v6/wmts/service/system/%d/%s";
+
+    private final static String DEM_FORMAT = "%s/sj_raster/v6/terrain_mesh/service/system/%d/%s";
+
+    private final static String COLOR_TABLE = "%s/sj_raster/v6/api/color_table?%s&page_count=%d&page_num=%d&key=";
+
     /**
      * 鍒嗛〉鏌ヨ鏁扮畝鐨勯鑹茶〃
      */
     public void selectSjColorTables(Integer pageSize, Integer pageIndex, HttpServletRequest req, HttpServletResponse res) {
         try {
-            String url = String.format("%s/sj_raster/v6/api/color_table?%s&page_count=%d&page_num=%d&key=", sjUrl, ak, pageSize, pageIndex);
+            String url = String.format(COLOR_TABLE, sjUrl, ak, pageSize, pageIndex);
 
             HttpHelper httpHelper = new HttpHelper();
             httpHelper.service(req, res, null, url);
@@ -123,11 +133,11 @@
      * 鑾峰彇EPSG缂栫爜
      */
     public String getEpsg(PubEntity pub) {
-        if (StaticData.I104903 == pub.getEpsgCode()) {
-            return "ESRI:" + pub.getEpsgCode();
+        if (StaticData.I104903 == pub.getEpsg()) {
+            return "ESRI:" + pub.getEpsg();
         }
 
-        return "EPSG:" + pub.getEpsgCode();
+        return "EPSG:" + pub.getEpsg();
     }
 
     /**
@@ -180,7 +190,7 @@
 
         CreateServiceEntity.Services services = entity.getService();
         services.setName(pub.getName());
-        services.setAccess_name(StringHelper.getGuid());
+        services.setAccess_name(pub.getUuid());
         services.setPub_status(1);
         services.setRect_minx(-180.0);
         services.setRect_miny(-90.0);
@@ -217,14 +227,16 @@
         entity.setName(pub.getName());
         entity.setMin(pub.getMin());
         entity.setMax(pub.getMax());
-        entity.setEpsg(pub.getEpsgCode());
+        entity.setEpsg(pub.getEpsg());
         entity.setCreateUser(pub.getUserId());
         entity.setDirid(pub.getDircode());
         entity.setDepid(pub.getDepcode());
         entity.setStatus(3);
         entity.setLayerid(layerId);
         entity.setServiceid(serviceId);
+        entity.setEventid(pub.getUuid());
         entity.setJson(getColorTableJson(pub));
+        entity.setUrl(String.format(TYPES.get(0).equals(pub.getType()) ? DOM_FORMAT : DEM_FORMAT, sjUrl, serviceId, StaticData.I0));
 
         return entity;
     }
@@ -264,7 +276,7 @@
     /**
      * 鎻掑叆鏁扮畝鏈嶅姟
      */
-    public Integer updateSjService(PubEntity pub, HttpServletRequest req, HttpServletResponse res) {
+    public Integer updateSjService(PubEntity pub) {
         PublishEntity entity = publishService.selectById(pub.getPubid());
         if (null == entity) {
             return 0;
@@ -275,8 +287,49 @@
         if (null != entity.getServiceid()) {
             deleteService(entity.getServiceid());
         }
+        setPubEntity(pub, entity);
 
-        return 1;
+        CreateLayerEntity layerEntity = createLayerEntity(pub);
+        Integer layerId = postLayerEntity(layerEntity);
+        if (null == layerId) {
+            return 0;
+        }
+
+        CreateServiceEntity serviceEntity = createServiceEntity(pub, layerId);
+        Integer serviceId = postServiceEntity(serviceEntity);
+        if (null == serviceId) {
+            return 0;
+        }
+
+        entity.setLayerid(layerId);
+        entity.setServiceid(serviceId);
+        entity.setUpdateUser(pub.getUserId());
+        if (StringHelper.isEmpty(entity.getGeom())) {
+            entity.setGeom(StaticData.NULL);
+        }
+
+        return publishService.update(entity);
+    }
+
+    /**
+     * 璁剧疆鍙戝竷瀹炰綋绫�
+     */
+    private void setPubEntity(PubEntity pub, PublishEntity entity) {
+        List<MetaEntity> metas = publishService.selectMetasByPubid(pub.getPubid());
+
+        List<Integer> ids = new ArrayList<>();
+        for (MetaEntity meta : metas) {
+            ids.add(meta.getId());
+        }
+        pub.setIds(ids);
+
+        if (StringHelper.isEmpty(pub.getName())) {
+            pub.setName(entity.getName());
+        }
+        if (null == pub.getEpsg() || 0 == pub.getEpsg()) {
+            pub.setEpsg(entity.getEpsg());
+        }
+
     }
 
     /**
diff --git a/src/main/resources/mapper/data/PublishMapper.xml b/src/main/resources/mapper/data/PublishMapper.xml
index b1d360e..7bca2ca 100644
--- a/src/main/resources/mapper/data/PublishMapper.xml
+++ b/src/main/resources/mapper/data/PublishMapper.xml
@@ -127,9 +127,9 @@
         </selectKey>
 
         insert into lf.sys_publish
-        (layerid,serviceid,name,url,path,type,status,dirid,depid,enhance_type,min,max,epsg,ct_type,ct_json,json,create_user,create_time,geom,bak)
+        (layerid,serviceid,eventid,name,url,path,type,status,dirid,depid,enhance_type,min,max,epsg,ct_type,ct_json,json,create_user,create_time,geom,bak)
         values
-        (#{layerid},#{serviceid},#{name},#{url},#{path},#{type},#{status},#{dirid},#{depid},#{enhanceType},#{min},#{max},#{epsg},#{ctType},#{ctJson},#{json},#{createUser},now(),${geom},#{bak})
+        (#{layerid},#{serviceid},#{eventid},#{name},#{url},#{path},#{type},#{status},#{dirid},#{depid},#{enhanceType},#{min},#{max},#{epsg},#{ctType},#{ctJson},#{json},#{createUser},now(),${geom},#{bak})
     </insert>
 
     <insert id="insertPubDown">
@@ -144,10 +144,10 @@
 
     <insert id="inserts">
         insert into lf.sys_publish
-        (layerid,serviceid,name,url,path,type,status,dirid,depid,enhance_type,min,max,epsg,ct_type,ct_json,json,create_user,create_time,geom,bak)
+        (layerid,serviceid,eventid,name,url,path,type,status,dirid,depid,enhance_type,min,max,epsg,ct_type,ct_json,json,create_user,create_time,geom,bak)
         values
         <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.layerid},#{item.serviceid},#{item.name},#{item.url},#{item.path},#{item.type},#{item.status},#{item.dirid},#{item.depid},#{item.enhanceType},#{item.min},#{item.max},#{item.epsg},#{item.ctType},#{item.ctJson},#{item.json},#{item.createUser},now(),${item.geom},#{item.bak})
+            (#{item.layerid},#{item.serviceid},#{item.eventid},#{item.name},#{item.url},#{item.path},#{item.type},#{item.status},#{item.dirid},#{item.depid},#{item.enhanceType},#{item.min},#{item.max},#{item.epsg},#{item.ctType},#{item.ctJson},#{item.json},#{item.createUser},now(),${item.geom},#{item.bak})
         </foreach>
     </insert>
 
@@ -171,14 +171,14 @@
 
     <update id="update">
         update lf.sys_publish
-        set layerid=#{layerid},serviceid=#{serviceid},name=#{name},url=#{url},path=#{path},type=#{type},status=#{status},dirid=#{dirid},depid=#{depid},enhance_type=#{enhanceType},min=#{min},max=#{max},epsg=#{epsg},ct_type=#{ctType},ct_json=#{ctJson},json=#{json},update_user=#{updateUser},update_time=now(),geom=${geom},bak=#{bak}
+        set layerid=#{layerid},serviceid=#{serviceid},eventid=#{eventid},name=#{name},url=#{url},path=#{path},type=#{type},status=#{status},dirid=#{dirid},depid=#{depid},enhance_type=#{enhanceType},min=#{min},max=#{max},epsg=#{epsg},ct_type=#{ctType},ct_json=#{ctJson},json=#{json},update_user=#{updateUser},update_time=now(),geom=${geom},bak=#{bak}
         where id=#{id}
     </update>
 
     <update id="updates">
         <foreach collection="list" item="item" index="index" separator=";">
             update lf.sys_publish
-            set layerid=#{item.layerid},serviceid=#{item.serviceid},name=#{item.name},url=#{item.url},path=#{item.path},type=#{item.type},status=#{item.status},dirid=#{item.dirid},depid=#{item.depid},enhance_type=#{item.enhanceType},min=#{item.min},max=#{item.max},epsg=#{item.epsg},ct_type=#{item.ctType},ct_json=#{item.ctJson},json=#{item.json},update_user=#{item.updateUser},update_time=now(),geom=${item.geom},bak=#{item.bak}
+            set layerid=#{item.layerid},serviceid=#{item.serviceid},eventid=#{item.eventid},name=#{item.name},url=#{item.url},path=#{item.path},type=#{item.type},status=#{item.status},dirid=#{item.dirid},depid=#{item.depid},enhance_type=#{item.enhanceType},min=#{item.min},max=#{item.max},epsg=#{item.epsg},ct_type=#{item.ctType},ct_json=#{item.ctJson},json=#{item.json},update_user=#{item.updateUser},update_time=now(),geom=${item.geom},bak=#{item.bak}
             where id = #{item.id}
         </foreach>
     </update>

--
Gitblit v1.9.3