From b27c72d3a671dc00bc5a1683ea309fb2a661dea3 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 05 九月 2023 16:41:05 +0800 Subject: [PATCH] 添加自动创建资源、自动更新资源功能 --- src/main/java/com/moon/server/entity/all/StaticData.java | 2 + src/main/java/com/moon/server/service/sys/ResService.java | 5 ++ src/main/resources/mapper/sys/ResMapper.xml | 4 ++ src/main/java/com/moon/server/service/data/ShuJianService.java | 45 ++++++++++++++++++++++ src/main/java/com/moon/server/mapper/sys/ResMapper.java | 8 ++++ 5 files changed, 63 insertions(+), 1 deletions(-) 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 c25bc3a..20857a6 100644 --- a/src/main/java/com/moon/server/entity/all/StaticData.java +++ b/src/main/java/com/moon/server/entity/all/StaticData.java @@ -162,6 +162,8 @@ public final static String NO = "NO"; + public final static String DOM = "DOM"; + public final static String SUCCESS = "$SUCCESS"; public final static String LINESTRING = "LINESTRING"; diff --git a/src/main/java/com/moon/server/mapper/sys/ResMapper.java b/src/main/java/com/moon/server/mapper/sys/ResMapper.java index 8b91820..185a070 100644 --- a/src/main/java/com/moon/server/mapper/sys/ResMapper.java +++ b/src/main/java/com/moon/server/mapper/sys/ResMapper.java @@ -55,6 +55,14 @@ public ResEntity selectById(int id); /** + * 鏍规嵁鍙戝竷ID鏌ヨ + * + * @param pubid 鍙戝竷ID + * @return + */ + public ResEntity selectByPubid(Integer pubid); + + /** * 鏍规嵁瑙掕壊鏌ヨ璁板綍鏁� * * @param roleid 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 e75ac26..9c2024a 100644 --- a/src/main/java/com/moon/server/service/data/ShuJianService.java +++ b/src/main/java/com/moon/server/service/data/ShuJianService.java @@ -7,6 +7,7 @@ import com.moon.server.entity.data.MetaPubEntity; import com.moon.server.entity.data.PublishEntity; import com.moon.server.entity.shujian.*; +import com.moon.server.entity.sys.ResEntity; import com.moon.server.helper.HttpHelper; import com.moon.server.helper.PathHelper; import com.moon.server.helper.RestHelper; @@ -95,6 +96,10 @@ if (null == id) { return id; } + + publishEntity.setId(id); + ResEntity resEntity = createResEntity(publishEntity); + resService.insert(resEntity); return insertMetaPub(pub, id); } @@ -242,6 +247,31 @@ } /** + * 鍒涘缓璧勬簮瀹炰綋绫� + */ + private ResEntity createResEntity(PublishEntity pub) { + ResEntity entity = new ResEntity(); + entity.setCnName(pub.getName()); + // 鐘舵�侊細0-绂佺敤锛�1-鍚敤鍘熷鍦板潃锛�2-鍚敤浠g悊鍦板潃 + entity.setStatus(2); + // 鏈嶅姟绫诲埆锛�0-鍏朵粬锛�1-GisServer锛�2-GeoServer锛�3-鏁扮畝 + entity.setCategory(3); + // 鏈嶅姟绫诲瀷锛�0-URL锛�1-TMS锛�2-WMTS锛�3-WMS锛�4-WFS锛�5-Tileset + entity.setType(StaticData.DOM.equals(pub.getType()) ? 2 : 0); + // 鏁版嵁绫诲瀷锛�0-URL锛�1-DOM锛�2-DEM + entity.setData(StaticData.DOM.equals(pub.getType()) ? 1 : 2); + entity.setUrl(pub.getUrl()); + entity.setArgs(ak); + entity.setDescr("绯荤粺鑷姩鍒涘缓"); + entity.setDepid(pub.getDepid()); + entity.setDirid(pub.getDirid()); + entity.setCreateUser(pub.getCreateUser()); + entity.setPubid(pub.getId()); + + return entity; + } + + /** * 鑾峰彇棰滆壊琛ㄧ殑JSON瀛楃涓� */ public String getColorTableJson(PubEntity pub) { @@ -308,7 +338,20 @@ entity.setGeom(StaticData.NULL); } - return publishService.update(entity); + int rows = publishService.update(entity); + if (0 == rows) { + return 0; + } + + ResEntity resEntity = resService.selectByPubid(entity.getId()); + if (null == resEntity) { + resEntity = createResEntity(entity); + return resService.insert(resEntity); + } else { + resEntity.setCnName(entity.getName()); + resEntity.setUrl(entity.getUrl()); + return resService.update(resEntity); + } } /** diff --git a/src/main/java/com/moon/server/service/sys/ResService.java b/src/main/java/com/moon/server/service/sys/ResService.java index 9c31f2d..a47da15 100644 --- a/src/main/java/com/moon/server/service/sys/ResService.java +++ b/src/main/java/com/moon/server/service/sys/ResService.java @@ -42,6 +42,11 @@ } @Override + public ResEntity selectByPubid(Integer pubid) { + return resMapper.selectByPubid(pubid); + } + + @Override public Integer selectCountForRole(Integer roleid) { return resMapper.selectCountForRole(roleid); } diff --git a/src/main/resources/mapper/sys/ResMapper.xml b/src/main/resources/mapper/sys/ResMapper.xml index 4d2f895..6e93a9a 100644 --- a/src/main/resources/mapper/sys/ResMapper.xml +++ b/src/main/resources/mapper/sys/ResMapper.xml @@ -59,6 +59,10 @@ where id = #{id}; </select> + <select id="selectByPubid" resultType="com.moon.server.entity.sys.ResEntity"> + select * from lf.sys_res where pubid = #{pubid} limit 1; + </select> + <select id="selectCountForRole" resultType="java.lang.Integer"> select count(a.*) from lf.sys_res a where not exists (select b.id from lf.sys_role_res b <where> -- Gitblit v1.9.3