From 3fac36b394206df5f8002fa32bd360021fec743f Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期四, 09 二月 2023 19:13:13 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/data/UploadService.java | 81 ++++++++++++++++++++++++++++++++++------ 1 files changed, 68 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/lf/server/service/data/UploadService.java b/src/main/java/com/lf/server/service/data/UploadService.java index a8dcc75..f9c9a34 100644 --- a/src/main/java/com/lf/server/service/data/UploadService.java +++ b/src/main/java/com/lf/server/service/data/UploadService.java @@ -57,13 +57,13 @@ /** * 鎻掑叆鏂囦欢 */ - public List<MetaEntity> insertFiles(UserEntity ue, List<MetaFileEntity> list, HttpServletRequest req) { + public void insertFiles(UserEntity ue, List<MetaFileEntity> list, HttpServletRequest req) { checkMetaFiles(ue, list); excelLoader(list, req); loadData(list); copyFiles(list); - - return insertMetas(list); + publishFiles(list); + insertMetas(list); } /** @@ -291,6 +291,10 @@ private void copyFiles(List<MetaFileEntity> list) { List<String> gdbList = new ArrayList<>(); for (MetaFileEntity mf : list) { + if (null != mf.getMsg()) { + continue; + } + switch (mf.getExtName()) { case StaticData.MPT: copyMultiFile(mf, StaticData.MPT_EXT); @@ -365,7 +369,6 @@ */ private void copyMultiFile(MetaFileEntity mf, List<String> extList) { String path = mf.getPath(); - int status = copySingleFile(mf); if (status < 1) { for (int i = 0, c = extList.size(); i < c; i++) { @@ -451,22 +454,74 @@ } /** - * 鎻掑叆鍏冩暟鎹� + * 鍙戝竷鏂囦欢 */ - private List<MetaEntity> insertMetas(List<MetaFileEntity> list) { - List<MetaEntity> metas = new ArrayList<>(); + private void publishFiles(List<MetaFileEntity> list) { for (MetaFileEntity mf : list) { - if (StringHelper.isEmpty(mf.getMsg())) { - metas.add(createMeta(mf)); + if (null != mf.getMsg()) { + continue; + } + switch (mf.getExtName()) { + case StaticData.MPT: + linkFiles(mf, StaticData.MPT_EXT, pathHelper.getConfig().getPublishMptPath()); + break; + case StaticData.D3DML: + linkFiles(mf, null, pathHelper.getConfig().getPublish3dmlPath()); + break; + default: + break; } } - if (metas.isEmpty()) { - return null; + } + + /** + * 閾炬帴鏂囦欢 + */ + private void linkFiles(MetaFileEntity mf, List<String> exts, String publishPath) { + String uploadPath = pathHelper.getConfig().getUploadPath(); + String source = uploadPath + File.separator + mf.getPath(); + String target = publishPath + File.separator + mf.getName(); + + File sourceFile = new File(source); + if (!sourceFile.exists() || sourceFile.isDirectory()) { + return; } - int rows = metaService.inserts(metas); + createFileLink(source, target); + if (null == exts) { + return; + } - return rows > 0 ? metas : null; + for (String ext : exts) { + File f=new File(source.replace(mf.getExtName(), ext)); + if (f.exists()&&!f.isDirectory()) { + createFileLink(source.replace(mf.getExtName(), ext), target.replace(mf.getExtName(), ext)); + } + } + } + + /** + * 鍒涘缓鏂囦欢閾炬帴 + */ + private void createFileLink(String source, String target) { + String cmd = String.format("cmd /c mklink \"%s\" \"%s\"", target, source); + WebHelper.exec(cmd); + } + + /** + * 鎻掑叆鍏冩暟鎹� + */ + private void insertMetas(List<MetaFileEntity> list) { + for (MetaFileEntity mf : list) { + if (null != mf.getMsg()) { + continue; + } + + MetaEntity me = createMeta(mf); + metaService.insert(me); + + mf.setMsg(me.getId() > 0 ? "鎴愬姛" : "澶辫触"); + } } /** -- Gitblit v1.9.3