| | |
| | | } |
| | | |
| | | @Override |
| | | public Integer selectCountByPath(String path) { |
| | | return metaMapper.selectCountByPath(path); |
| | | } |
| | | |
| | | @Override |
| | | public Integer insert(MetaEntity entity) { |
| | | return metaMapper.insert(entity); |
| | | } |
| | |
| | | */ |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 删除元数据文件 |
| | | */ |
| | | 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) { |