管道基础大数据平台系统开发-【后端】-Server
13693261870
2023-09-18 bf6109a746afe7d184f0d14241a5b44d4f95a1bc
添加删除元数据功能
已修改4个文件
106 ■■■■■ 文件已修改
src/main/java/com/lf/server/mapper/data/MetaMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/MetaService.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/data/MetaMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/mapper/data/MetaMapper.java
@@ -178,6 +178,14 @@
    public List<String> selectMetaOverflowDep(String ids, String depcode);
    /**
     * 根据路径查询文件名
     *
     * @param path 路径
     * @return 文件数
     */
    public Integer selectCountByPath(String path);
    /**
     * 插入一条
     *
     * @param entity
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) {
src/main/resources/application.yml
@@ -46,11 +46,11 @@
    name: prod
    # JDBC 基本配置 &currentSchema=public
    #url: jdbc:postgresql://103.85.165.99:5433/langfang?useAffectedRows=true
    url: jdbc:postgresql://192.168.20.205:5433/langfang?useAffectedRows=true
    #url: jdbc:postgresql://127.0.0.1:5433/langfang?useAffectedRows=true
    #url: jdbc:postgresql://192.168.20.205:5433/langfang?useAffectedRows=true
    url: jdbc:postgresql://127.0.0.1:5433/langfang?useAffectedRows=true
    username: postgres
    password: Postgres!_14_Lf
    #password: postgres
    #password: Postgres!_14_Lf
    password: postgres
    driver-class-name: org.postgresql.Driver
    platform: POSTGRESQL
    type: com.alibaba.druid.pool.DruidDataSource
src/main/resources/mapper/data/MetaMapper.xml
@@ -205,6 +205,12 @@
         order by depcode;
    </select>
    <select id="selectCountByPath" resultType="java.lang.Integer">
        with a as (select count(*) from lf.sys_meta where path = #{path}),
             b as (select count(*) from lf.sys_attach where path = #{path})
        select a.count + b.count "count" from a, b;
    </select>
    <insert id="insert" parameterType="com.lf.server.entity.data.MetaEntity">
        <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
            select currval('lf.sys_meta_id_seq'::regclass) as id