From ac20dc99bf1f463365dba071973e08fffbd294b4 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 14 七月 2023 14:12:21 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/data/PublishService.java | 153 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 142 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/lf/server/service/data/PublishService.java b/src/main/java/com/lf/server/service/data/PublishService.java index 3091c26..816dc46 100644 --- a/src/main/java/com/lf/server/service/data/PublishService.java +++ b/src/main/java/com/lf/server/service/data/PublishService.java @@ -4,22 +4,24 @@ import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.all.StaticData; import com.lf.server.entity.ctrl.PubEntity; +import com.lf.server.entity.ctrl.RegisterEntity; import com.lf.server.entity.data.MetaEntity; import com.lf.server.entity.data.PublishEntity; -import com.lf.server.entity.show.ExportEntity; +import com.lf.server.helper.PathHelper; import com.lf.server.helper.RestHelper; import com.lf.server.helper.StringHelper; +import com.lf.server.helper.WebHelper; import com.lf.server.mapper.data.PublishMapper; -import org.springframework.beans.factory.annotation.Autowired; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.lang.reflect.Field; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 鏁版嵁鍙戝竷 @@ -30,19 +32,30 @@ @Value("${sys.exportServer}") private String exportServer; - @Autowired + @Value("${sys.iisHost}") + private String iisHost; + + @Resource PublishMapper publishMapper; + + @Resource + FmeService fmeService; + + @Resource + PathHelper pathHelper; + + private final static Log log = LogFactory.getLog(PublishService.class); @Override public Integer selectCount(String name) { - name = StringHelper.getLikeStr(name); + name = StringHelper.getLikeUpperStr(name); return publishMapper.selectCount(name); } @Override public List<PublishEntity> selectByPage(String name, Integer limit, Integer offset) { - name = StringHelper.getLikeStr(name); + name = StringHelper.getLikeUpperStr(name); return publishMapper.selectByPage(name, limit, offset); } @@ -58,6 +71,16 @@ } @Override + public List<PublishEntity> selectByIds(String ids) { + return publishMapper.selectByIds(ids); + } + + @Override + public List<String> selectCodesForDir(String dircode, Integer isDom) { + return publishMapper.selectCodesForDir(dircode, isDom); + } + + @Override public Integer insert(PublishEntity entity) { return publishMapper.insert(entity); } @@ -65,6 +88,11 @@ @Override public Integer inserts(List<PublishEntity> list) { return publishMapper.inserts(list); + } + + @Override + public Integer insertPubDown(Integer pubid, Integer downid, Integer createUser) { + return publishMapper.insertPubDown(pubid, downid, createUser); } @Override @@ -91,7 +119,7 @@ public Integer selectMetasByCount(String depcode, String dircode, Integer verid, String types, String name) { depcode = StringHelper.getRightLike(depcode); dircode = StringHelper.getRightLike(dircode); - name = StringHelper.getLikeStr(name); + name = StringHelper.getLikeUpperStr(name); return publishMapper.selectMetasByCount(depcode, dircode, verid, types, name); } @@ -100,7 +128,7 @@ public List<MetaEntity> selectMetasByPage(String depcode, String dircode, Integer verid, String types, String name, Integer limit, Integer offset) { depcode = StringHelper.getRightLike(depcode); dircode = StringHelper.getRightLike(dircode); - name = StringHelper.getLikeStr(name); + name = StringHelper.getLikeUpperStr(name); return publishMapper.selectMetasByPage(depcode, dircode, verid, types, name, limit, offset); } @@ -108,7 +136,7 @@ /** * 鍙戦�佸彂甯冭姹� */ - public long postForPub(PubEntity entity, String method, HttpServletRequest req) throws Exception { + public long postForPub(PubEntity entity, String method, HttpServletRequest req) { Map<String, Object> map = getMapData(entity); String str = RestHelper.postForRest(exportServer + method, map); @@ -119,6 +147,10 @@ ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class); if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { return 0; + } + + if (msg.getCount() > 0) { + serverRegister(msg.getResult(), req); } return msg.getCount(); @@ -148,4 +180,103 @@ return map; } + + /** + * 鏈嶅姟娉ㄥ唽 + */ + private void serverRegister(String ids, HttpServletRequest req) { + List<PublishEntity> list = selectByIds(ids); + if (null == list || list.isEmpty()) { + return; + } + + for (PublishEntity entity : list) { + String url = entity.getUrl().replace("{host}", iisHost); + String type = getServerType(entity); + + RegisterEntity reg = fmeService.serverRegister(entity.getName(), url, type, req); + if (null == reg || StringHelper.isEmpty(reg.getSerialnum())) { + continue; + } + + fmeService.serverApply(reg.getSerialnum(), entity.getId(), req); + + entity.setRegid(reg.getHashid()); + update(entity); + } + } + + /** + * 鑾峰彇鏈嶅姟绫诲瀷 + */ + private String getServerType(PublishEntity entity) { + switch (entity.getType()) { + case "DOM": + return "TMS鏈嶅姟"; + case "DEM": + return "涓夌淮鍦板舰鏈嶅姟"; + case "mpt": + return "涓夌淮鍦烘櫙鏈嶅姟"; + case "las": + case "laz": + case "cpt": + return "涓夌淮鐐逛簯鏈嶅姟"; + default: + return "涓夌淮妯″瀷鏈嶅姟"; + } + } + + /** + * 鍒犻櫎澶氭潯 + */ + public Integer deletes(List<Integer> idList, HttpServletRequest req) { + String ids = StringHelper.join(idList, ","); + + deleteRes(ids, req); + + return deletes(ids); + } + + /** + * 鍒犻櫎璧勬簮 + */ + private void deleteRes(String ids, HttpServletRequest req) { + List<PublishEntity> list = selectByIds(ids); + if (null == list || list.isEmpty()) { + return; + } + + for (PublishEntity entity : list) { + if (StringHelper.isEmpty(entity.getRegid())) { + continue; + } + + try { + fmeService.deleteRes(entity.getRegid(), req); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } + } + + /** + * 鍒犻櫎鍙戝竷鏂囦欢 + */ + public void deleteFiles(List<PublishEntity> list) { + String lfData = pathHelper.getConfig().getLfData(); + for (PublishEntity pub : list) { + if (null != pub.getUrl() && pub.getUrl().contains("/SG/")) { + continue; + } + + String path = lfData + pub.getPath().replace("\\tileset.json", ""); + File file = new File(path); + if (!file.exists() || !file.isDirectory()) { + continue; + } + + String cmd = String.format("cmd /c rd \"%s\" /s /q", path); + WebHelper.exec(cmd); + } + } } -- Gitblit v1.9.3