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/MetaService.java | 91 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 87 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/lf/server/service/data/MetaService.java b/src/main/java/com/lf/server/service/data/MetaService.java index babd701..3b81ffc 100644 --- a/src/main/java/com/lf/server/service/data/MetaService.java +++ b/src/main/java/com/lf/server/service/data/MetaService.java @@ -130,6 +130,11 @@ } @Override + public List<MetaEntity> selectByIds(String ids) { + return metaMapper.selectByIds(ids); + } + + @Override public List<MetaEntity> selectMetaFiles(List<Integer> ids) { return metaMapper.selectMetaFiles(ids); } @@ -151,6 +156,11 @@ depcode = StringHelper.getRightLike(depcode); return metaMapper.selectMetaOverflowDep(ids, depcode); + } + + @Override + public Integer selectCountByPath(String path) { + return metaMapper.selectCountByPath(path); } @Override @@ -183,14 +193,18 @@ */ public Integer deletes(List<Integer> list) { String ids = StringHelper.join(list, ","); + List<MetaEntity> metas = selectByIds(ids); String sql = null; - List<MetaEntity> metas = selectByIdsForTab(ids); - if (null != metas && metas.size() > 0) { - sql = getDelTabsSql(metas); + List<MetaEntity> tabMetas = selectByIdsForTab(ids); + if (null != tabMetas && tabMetas.size() > 0) { + sql = getDelTabsSql(tabMetas); } - return deletes(sql, ids); + int rows = deletes(sql, ids); + deleteMetaFiles(metas); + + return rows; } /** @@ -269,6 +283,75 @@ } /** + * 鍒犻櫎鍏冩暟鎹枃浠� + */ + private void deleteMetaFiles(List<MetaEntity> metas) { + String uploadPath = pathHelper.getConfig().getUploadPath(); + for (MetaEntity meta : metas) { + if (StringHelper.isEmpty(meta.getPath())) { + continue; + } + Integer rows = selectCountByPath(meta.getPath()); + if (rows > 0) { + continue; + } + + try { + String file = uploadPath + File.separator + meta.getPath(); + switch ("." + meta.getType()) { + case StaticData.MPT: + deleteFiles(file, meta.getType(), StaticData.MPT_EXT); + break; + case StaticData.JPG: + deleteFiles(file, meta.getType(), StaticData.JPG_EXT); + break; + case StaticData.IMG: + deleteFiles(file, meta.getType(), StaticData.IMG_EXT); + break; + case StaticData.TIF: + deleteFiles(file, meta.getType(), StaticData.TIF_EXT); + break; + case StaticData.TIFF: + deleteFiles(file, meta.getType(), StaticData.TIFF_EXT); + break; + case StaticData.SHP: + deleteFiles(file, meta.getType(), StaticData.SHP_EXT); + break; + case StaticData.GDB: + case StaticData.OSGB: + FileHelper.deleteDir(file); + break; + default: + deleteFiles(file, meta.getType(), null); + break; + } + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } + } + + /** + * 鍒犻櫎澶氫釜鏂囦欢 + */ + private void deleteFiles(String file, String type, List<String> extList) { + File f = new File(file); + if (f.exists() && !f.isDirectory()) { + f.delete(); + } + if (null == extList || extList.isEmpty()) { + return; + } + + for (String ext : extList) { + f = new File(file.replace("." + type, ext)); + if (f.exists() && !f.isDirectory()) { + f.delete(); + } + } + } + + /** * 鏌ョ湅鏂囦欢 */ public void downloadForView(String guid, boolean inline, HttpServletResponse res) { -- Gitblit v1.9.3