From ed8c7a5effd0d423ce1118b680ecdca6fe732609 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 02 七月 2025 16:43:13 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.11.205:9000/r/P2022036_Service --- src/main/java/com/lf/server/service/data/PublishService.java | 249 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 233 insertions(+), 16 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..51febe1 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,26 @@ 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.entity.sys.UserEntity; +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 com.lf.server.service.sys.TokenService; +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,21 +34,37 @@ @Value("${sys.exportServer}") private String exportServer; - @Autowired + @Value("${sys.iisHost}") + private String iisHost; + + @Resource PublishMapper publishMapper; - @Override - public Integer selectCount(String name) { - name = StringHelper.getLikeStr(name); + @Resource + FmeService fmeService; - return publishMapper.selectCount(name); + @Resource + PathHelper pathHelper; + + @Resource + TokenService tokenService; + + private final static Log log = LogFactory.getLog(PublishService.class); + + @Override + public Integer selectCount(String name, String dircode, String type) { + name = StringHelper.getLikeUpperStr(name); + dircode = StringHelper.getRightLike(dircode); + + return publishMapper.selectCount(name, dircode, type); } @Override - public List<PublishEntity> selectByPage(String name, Integer limit, Integer offset) { - name = StringHelper.getLikeStr(name); + public List<PublishEntity> selectByPage(String name, String dircode, String type, Integer limit, Integer offset) { + name = StringHelper.getLikeUpperStr(name); + dircode = StringHelper.getRightLike(dircode); - return publishMapper.selectByPage(name, limit, offset); + return publishMapper.selectByPage(name, dircode, type, limit, offset); } @Override @@ -58,6 +78,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 +95,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 +126,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,15 +135,36 @@ 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); + } + + public List<Integer> selectLasCs(PubEntity entity, String method, HttpServletRequest req) { + Map<String, Object> map = getMapData(entity); + + String str = RestHelper.postForRest(exportServer + method, map); + if (StringHelper.isEmpty(str)) { + return null; + } + + ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class); + if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { + return null; + } + + String rs = msg.getResult(); + if (StringHelper.isEmpty(rs)) { + return null; + } + + return StringHelper.strToIntegers(rs); } /** * 鍙戦�佸彂甯冭姹� */ - 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 +175,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 +208,161 @@ return map; } + + /** + * 鏈嶅姟娉ㄥ唽 + */ + private void serverRegister(String ids, HttpServletRequest req) { + List<PublishEntity> list = selectByIds(ids); + if (null == list || list.isEmpty()) { + return; + } + + for (PublishEntity entity : list) { + // 閬垮厤閲嶅娉ㄥ唽 + if (null != entity.getUpdateTime()) { + continue; + } + + 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); + } + } + + /** + * 鍒犻櫎鍙戝竷鏂囦欢 + */ + public void deleteFiles(List<Integer> ids, HttpServletRequest req) { + PubEntity entity = new PubEntity(); + entity.setIds(ids); + entity.setDircode("00"); + + UserEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + entity.setUserId(ue.getId()); + entity.setToken(WebHelper.getToken(req)); + } + + long rows = postForPub(entity, "/Convert/DeleteFiles"); + } + + /** + * 鍙戦�佸彂甯冭姹� + */ + public long postForPub(PubEntity entity, String method) { + Map<String, Object> map = getMapData(entity); + + String str = RestHelper.postForRest(exportServer + method, map); + if (StringHelper.isEmpty(str)) { + return 0; + } + + ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class); + if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { + return 0; + } + + return msg.getCount(); + } + + /** + * 娴嬭瘯鏌ヨ + */ + public String selectForTest(Integer seconds) { + String str = RestHelper.get(exportServer + "/TB/Wait?seconds=" + seconds); + if (StringHelper.isEmpty(str)) { + return null; + } + + ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class); + if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { + return null; + } + + return msg.getResult(); + } } -- Gitblit v1.9.3