管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-03-26 db5338c2246acbc0826a9b683392512cf00eba04
src/main/java/com/lf/server/service/data/MetaService.java
@@ -161,8 +161,15 @@
     * 获取删除表记录SQL
     */
    public String getDelTabsSql(List<MetaEntity> metas) {
        List<String> list = getTabDeletes(metas, metas.get(0).getTab());
        addCascadDeletes(list);
        addAttachDeletes(list);
        return StringHelper.join(list, ";");
    }
    private List<String> getTabDeletes(List<MetaEntity> metas, String tab) {
        List<String> list = new ArrayList<>();
        String tab = metas.get(0).getTab();
        List<String> pids = new ArrayList<>();
        for (MetaEntity me : metas) {
@@ -180,7 +187,13 @@
            list.add(String.format("delete from %s where parentid in (%s)", tab, StringHelper.join(pids, ",")));
        }
        // 关联删除
        return list;
    }
    /**
     * 添加级联删除
     */
    private void addCascadDeletes(List<String> list) {
        int i = 0, c = list.size();
        while (i < c) {
            String str = list.get(i);
@@ -194,8 +207,22 @@
            i++;
        }
    }
        return StringHelper.join(list, ";");
    /**
     * 添加附件删除
     */
    private void addAttachDeletes(List<String> list) {
        int i = 0, c = list.size();
        while (i < c) {
            String str = list.get(i);
            String tab = str.substring("delete from ".length(), str.indexOf(" where "));
            String select = str.replace("delete ", "select eventid ");
            list.add(String.format("delete from lf.sys_attach where tab='%s' and tab_guid in (%s)", tab, select));
            i++;
        }
    }
    /**