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.Date; import java.util.List; /** * dir * @author sws * @date 2022-09-24 */ @Service public class DirService implements DirMapper { @Autowired PathHelper pathHelper; @Autowired DirMapper dirMapper; @Override public Integer insert(DirEntity dirEntity) { return dirMapper.insert(dirEntity); } @Override public Integer inserts(List dirEntity) { return dirMapper.inserts(dirEntity); } @Override public Integer deleteDir(int id) { return dirMapper.deleteDir(id); } @Override public Integer deleteDirs(List ids) { return dirMapper.deleteDirs(ids); } @Override public Integer update(DirEntity dirEntity) { return dirMapper.update(dirEntity); } @Override public Integer updates(List dirEntity) { return dirMapper.updates(dirEntity); } @Override public DirEntity selectDir(int id) { return dirMapper.selectDir(id); } @Override public DirEntity selectByCode(String code) { return dirMapper.selectByCode(code); } @Override public List selectDirAll() { return dirMapper.selectDirAll(); } @Override public List selectDirRoot() { return dirMapper.selectDirRoot(); } @Override public List selectProject(String name) { name = StringHelper.getLikeUpperStr(name); return dirMapper.selectProject(name); } @Override public List selectRecursiveById(Integer id) { return dirMapper.selectRecursiveById(id); } @Override public List selectDirsForPrj() { return dirMapper.selectDirsForPrj(); } /** * 创建数据目录 */ public String createDirs(int id) throws Exception { List 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; } }