管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-03-03 cc3d237b380bc30be21f7cb5d8c6fb9b3d617fe3
src/main/java/com/lf/server/service/data/MetaService.java
@@ -6,6 +6,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@@ -90,6 +91,11 @@
    }
    @Override
    public List<MetaEntity> selectByIdsForTab(String ids) {
        return metaMapper.selectByIdsForTab(ids);
    }
    @Override
    public List<MetaEntity> selectMetaFiles(List<Integer> ids) {
        return metaMapper.selectMetaFiles(ids);
    }
@@ -110,10 +116,8 @@
    }
    @Override
    public Integer deletes(List<Integer> ids) {
        String idStrs = StringHelper.join(ids, ",");
        return metaMapper.deletes(ids);
    public Integer deletes(String sql, String ids) {
        return metaMapper.deletes(sql, ids);
    }
    @Override
@@ -125,4 +129,46 @@
    public Integer updates(List<MetaEntity> list) {
        return metaMapper.updates(list);
    }
    /**
     * 删除元数据
     */
    public Integer deletes(List<Integer> list) {
        String ids = StringHelper.join(list, ",");
        String sql = null;
        List<MetaEntity> metas = selectByIdsForTab(ids);
        if (null != metas && metas.size() > 0) {
            sql = getDelTabsSql(metas);
        }
        return deletes(sql, ids);
    }
    /**
     * 获取删除表记录SQL
     */
    public String getDelTabsSql(List<MetaEntity> metas) {
        List<String> list = new ArrayList<>();
        String tab = metas.get(0).getTab();
        List<String> pids = new ArrayList<>();
        for (MetaEntity me : metas) {
            if (tab.equals(me.getTab())) {
                pids.add("'" + me.getEventid() + "'");
            } else {
                list.add(String.format("delete from %s where parentid in (%s)", tab, StringHelper.join(pids, ",")));
                pids.clear();
                tab = me.getTab();
                pids.add("'" + me.getEventid() + "'");
            }
        }
        if (pids.size() > 0) {
            list.add(String.format("delete from %s where parentid in (%s)", tab, StringHelper.join(pids, ",")));
        }
        return StringHelper.join(list, ";");
    }
}