From 0aee44b467e8afb547cf775da687c6b3ff4fb239 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期日, 23 四月 2023 15:39:41 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/show/InquiryService.java | 56 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/lf/server/service/show/InquiryService.java b/src/main/java/com/lf/server/service/show/InquiryService.java index 51a0a1a..943eb4c 100644 --- a/src/main/java/com/lf/server/service/show/InquiryService.java +++ b/src/main/java/com/lf/server/service/show/InquiryService.java @@ -1,20 +1,21 @@ package com.lf.server.service.show; -import com.lf.server.config.PropertiesConfig; import com.lf.server.entity.all.StaticData; import com.lf.server.entity.ctrl.DownloadTileEntity; import com.lf.server.entity.ctrl.ShpRecordEntity; import com.lf.server.entity.data.MetaFileEntity; import com.lf.server.entity.data.PublishEntity; import com.lf.server.entity.sys.UserEntity; -import com.lf.server.helper.FileHelper; -import com.lf.server.helper.ShpHelper; -import com.lf.server.helper.StringHelper; +import com.lf.server.helper.*; +import net.lingala.zip4j.ZipFile; +import net.lingala.zip4j.model.ZipParameters; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.File; +import java.io.FileInputStream; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -24,7 +25,7 @@ @Service public class InquiryService { @Resource - PropertiesConfig config; + PathHelper pathHelper; /** * 璇诲彇Shp绗竴鏉¤褰曠殑WKT @@ -51,14 +52,21 @@ * 鎵撳寘鐡︾墖 */ public String zipTiles(DownloadTileEntity dt, PublishEntity pub, UserEntity ue) { - if (!TilePathExist(pub)) { + if (!isTilePathExist(pub)) { return null; } - List<String> list = findTiles(dt, pub); + List<File> list = findTiles(dt, pub); if (list.isEmpty()) { return null; } + + String tempName = StringHelper.YMDHMS2_FORMAT.format(new Date()); + String zipFile = pathHelper.getDownloadFullPath() + File.separator + tempName + ".zip"; + + ZipFile zip = Zip4jHelper.createZipFile(zipFile, dt.getPwd()); + ZipParameters params = Zip4jHelper.getZipParams(true); + addFiles(zip, params, list, pub.getPath() + File.separator); return "aaa"; } @@ -66,8 +74,8 @@ /** * 鐡︾墖璺緞鏄惁瀛樺湪 */ - private boolean TilePathExist(PublishEntity pub) { - String tilePath = config.getTilePath().replace("2d\\tiles", "") + File.separator + pub.getPath(); + private boolean isTilePathExist(PublishEntity pub) { + String tilePath = pathHelper.getConfig().getTilePath().replace("2d\\tiles", "") + File.separator + pub.getPath(); File f = new File(tilePath); if (!f.exists() || !f.isDirectory()) { @@ -82,8 +90,8 @@ /** * 鏌ユ壘鐡︾墖 */ - private List<String> findTiles(DownloadTileEntity dt, PublishEntity pub) { - List<String> list = new ArrayList<>(); + private List<File> findTiles(DownloadTileEntity dt, PublishEntity pub) { + List<File> list = new ArrayList<>(); for (int i = 0; i < StaticData.I23; i++) { findTilesByZoom(dt, pub, i, list); } @@ -94,12 +102,34 @@ /** * 鏍规嵁灞傛鏌ユ壘鐡︾墖 */ - private void findTilesByZoom(DownloadTileEntity dt, PublishEntity pub, int zoom, List<String> list) { + private void findTilesByZoom(DownloadTileEntity dt, PublishEntity pub, int zoom, List<File> list) { File f = new File(pub.getPath() + File.separator + zoom); if (!f.exists() || !f.isDirectory()) { return; } - // + int x = 0; + int y = 0; + // 鍏抽敭绠楁硶 + + String pngPath = String.format("%s\\%d\\%d.png", pub.getPath(), x, y); + File pngFile = new File(pngPath); + if (pngFile.exists()) { + list.add(pngFile); + } + } + + /** + * 娣诲姞鏂囦欢鑷冲帇缂╁寘 + */ + private void addFiles(ZipFile zip, ZipParameters params, List<File> list, String basePath) { + for (File f : list) { + try { + params.setFileNameInZip(f.getPath().replace(basePath, "")); + zip.addStream(new FileInputStream(f), params); + } catch (Exception e) { + // + } + } } } -- Gitblit v1.9.3