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;
|
|
/**
|
* 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> dirEntity) {
|
return dirMapper.inserts(dirEntity);
|
}
|
|
@Override
|
public Integer deleteDir(int id) {
|
return dirMapper.deleteDir(id);
|
}
|
|
@Override
|
public Integer deleteDirs(List<Integer> ids) {
|
return dirMapper.deleteDirs(ids);
|
}
|
|
@Override
|
public Integer update(DirEntity dirEntity) {
|
return dirMapper.update(dirEntity);
|
}
|
|
@Override
|
public Integer updates(List<DirEntity> 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<DirEntity> selectDirAll() {
|
return dirMapper.selectDirAll();
|
}
|
|
@Override
|
public List<DirEntity> selectDirRoot() {
|
return dirMapper.selectDirRoot();
|
}
|
|
@Override
|
public List<DirEntity> selectProject(String name) {
|
name = StringHelper.getLikeUpperStr(name);
|
|
return dirMapper.selectProject(name);
|
}
|
|
@Override
|
public List<DirEntity> selectRecursiveById(Integer 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;
|
}
|
}
|