管道基础大数据平台系统开发-【后端】-Server
13693261870
2024-02-27 8f2042ce63ceb46b8c14e7f6e72bfe80492e64d1
src/main/java/com/lf/server/service/data/DirService.java
@@ -1,10 +1,18 @@
package com.lf.server.service.data;
import com.lf.server.entity.data.DirEntity;
import com.lf.server.helper.PathHelper;
import com.lf.server.helper.StringHelper;
import com.lf.server.helper.Zip4jHelper;
import com.lf.server.mapper.data.DirMapper;
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -15,6 +23,9 @@
@Service
public class DirService implements DirMapper {
    @Autowired
    PathHelper pathHelper;
    @Autowired
    DirMapper dirMapper;
@@ -54,6 +65,11 @@
    }
    @Override
    public DirEntity selectByCode(String code) {
        return dirMapper.selectByCode(code);
    }
    @Override
    public List<DirEntity> selectDirAll() {
        return dirMapper.selectDirAll();
    }
@@ -64,17 +80,64 @@
    }
    @Override
    public List<DirEntity> selectProject() {
        return dirMapper.selectProject();
    }
    public List<DirEntity> selectProject(String name) {
        name = StringHelper.getLikeUpperStr(name);
    @Override
    public List<DirEntity> selectDirRecursive(String name) {
        return dirMapper.selectDirRecursive(name);
        return dirMapper.selectProject(name);
    }
    @Override
    public List<DirEntity> selectRecursiveById(Integer id) {
        return dirMapper.selectRecursiveById(id);
        List<DirEntity> list = dirMapper.selectRecursiveById(id);
        return null == list ? new ArrayList<>() : list;
    }
    @Override
    public List<DirEntity> selectDirsForPrj() {
        return dirMapper.selectDirsForPrj();
    }
    @Override
    public Integer selectMaxOrderNum() {
        return dirMapper.selectMaxOrderNum();
    }
    @Override
    public DirEntity selectDirByName(String name, Integer pid) {
        return dirMapper.selectDirByName(name, pid);
    }
    /**
     * 创建数据目录
     */
    public String createDirs(int id) throws Exception {
        List<DirEntity> list = selectRecursiveById(id);
        if (null == list || list.isEmpty()) {
            return null;
        }
        String tempPath = pathHelper.getTempPath();
        for (DirEntity dir : list) {
            String path = tempPath + File.separator + dir.getFullName();
            File f = new File(path);
            if (f.exists() && f.isDirectory()) {
                continue;
            }
            f.mkdirs();
        }
        File file = new File(tempPath + File.separator + list.get(0).getName());
        if (!file.exists() || !file.isDirectory()) {
            file.mkdirs();
        }
        String zipFile = tempPath + File.separator + list.get(0).getName() + ".zip";
        ZipFile zip = Zip4jHelper.createZipFile(zipFile, null);
        ZipParameters params = Zip4jHelper.getZipParams(false);
        zip.addFolder(file, params);
        return zipFile;
    }
}