管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-03-03 222f719b70c70f8ed816f37c829d0d62a3c9d1e8
src/main/java/com/lf/server/service/data/MetaService.java
@@ -6,10 +6,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
 * 源数据
 * 元数据
 * @author WWW
 */
@Service
@@ -66,8 +67,17 @@
    }
    @Override
    public List<MetaEntity> selectAll() {
        return metaMapper.selectAll();
    public Integer selectCountByPid(Integer metaid, String name) {
        name = StringHelper.getLikeStr(name);
        return metaMapper.selectCountByPid(metaid, name);
    }
    @Override
    public List<MetaEntity> selectPageByPid(Integer metaid, String name, Integer limit, Integer offset) {
        name = StringHelper.getLikeStr(name);
        return metaMapper.selectPageByPid(metaid, name, limit, offset);
    }
    @Override
@@ -78,6 +88,11 @@
    @Override
    public MetaEntity selectByGuid(String guid, String tab) {
        return metaMapper.selectByGuid(guid, tab);
    }
    @Override
    public List<MetaEntity> selectByIdsForTab(String ids) {
        return metaMapper.selectByIdsForTab(ids);
    }
    @Override
@@ -101,13 +116,8 @@
    }
    @Override
    public Integer delete(int id) {
        return metaMapper.delete(id);
    }
    @Override
    public Integer deletes(List<Integer> ids) {
        return metaMapper.deletes(ids);
    public Integer deletes(String sql, String ids) {
        return metaMapper.deletes(sql, ids);
    }
    @Override
@@ -119,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, ";");
    }
}