管道基础大数据平台系统开发-【后端】-Server
13693261870
2023-09-18 bf6109a746afe7d184f0d14241a5b44d4f95a1bc
src/main/java/com/lf/server/service/data/MetaService.java
@@ -159,6 +159,11 @@
    }
    @Override
    public Integer selectCountByPath(String path) {
        return metaMapper.selectCountByPath(path);
    }
    @Override
    public Integer insert(MetaEntity entity) {
        return metaMapper.insert(entity);
    }
@@ -188,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) {
        List<MetaEntity> tabMetas = selectByIdsForTab(ids);
        if (null != tabMetas && tabMetas.size() > 0) {
            sql = getDelTabsSql(metas);
        }
        return deletes(sql, ids);
        int rows = deletes(sql, ids);
        deleteMetaFiles(metas);
        return rows;
    }
    /**
@@ -274,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) {