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