优化事务和导出的逻辑。
This commit is contained in:
parent
b9233d086c
commit
0c6ab12f3f
|
|
@ -43,6 +43,7 @@ import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
|
@ -330,10 +331,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
String tmpDir = uploadDataDir + currentUserId + File.separator + uuid + File.separator;
|
String tmpDir = uploadDataDir + currentUserId + File.separator + uuid + File.separator;
|
||||||
ZipUtil.unzip(zipDirPath, tmpDir);
|
ZipUtil.unzip(zipDirPath, tmpDir);
|
||||||
update2Database(zipDirPath);
|
update2Database(zipDirPath);
|
||||||
return null;
|
return ElectromagneticResultUtil.success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
||||||
public void update2Database(String prjDirPath) {
|
public void update2Database(String prjDirPath) {
|
||||||
|
|
||||||
List<EdFileInfo> importFileInfos = JSONUtil.toList(prjDirPath + File.separator + "mysql.info", EdFileInfo.class);
|
List<EdFileInfo> importFileInfos = JSONUtil.toList(prjDirPath + File.separator + "mysql.info", EdFileInfo.class);
|
||||||
|
|
@ -504,19 +505,19 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
List<EdFileInfo> folders = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FOLDER.code)).collect(Collectors.toList());
|
List<EdFileInfo> folders = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FOLDER.code)).collect(Collectors.toList());
|
||||||
List<EdFileInfo> files = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).collect(Collectors.toList());
|
List<EdFileInfo> files = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).collect(Collectors.toList());
|
||||||
for (EdFileInfo edFileInfo : folders) {
|
for (EdFileInfo edFileInfo : folders) {
|
||||||
String destFolderPath = downloadDataDir + File.separator + commonService.getFileSysPath(edFileInfo.getFileId());
|
String destFolderPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getFileSysPath(edFileInfo.getFileId());
|
||||||
fileSystemService.createDirectory(destFolderPath);
|
fileSystemService.createDirectory(destFolderPath);
|
||||||
}
|
}
|
||||||
for (EdFileInfo edFileInfo : files) {
|
for (EdFileInfo edFileInfo : files) {
|
||||||
String filePath = commonService.getFileSysPath(edFileInfo.getFileId()) + edFileInfo.getFileCode() + "." + edFileInfo.getFileCode();
|
String filePath = commonService.getFileSysPath(edFileInfo.getFileId()) + edFileInfo.getFileCode() + "." + edFileInfo.getFileCode();
|
||||||
String destPath = downloadDataDir + File.separator + commonService.getDbPath(edFileInfo.getFileId());
|
String destPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getDbPath(edFileInfo.getFileId());
|
||||||
fileSystemService.copyFile(filePath, destPath);
|
fileSystemService.copyFile(filePath, destPath);
|
||||||
}
|
}
|
||||||
String mysqlInfo = JSONUtil.toJsonStr(resFiles);
|
String mysqlInfo = JSONUtil.toJsonStr(resFiles);
|
||||||
fileSystemService.writeStringToFile(downloadDataDir + File.separator + "mysql.info", mysqlInfo);
|
fileSystemService.writeStringToFile(downloadDataDir + File.separator + prjName + File.separator + "mysql.info", mysqlInfo);
|
||||||
String exportZipFile = downloadDataDir + File.separator + prjName + ".zip";
|
String exportZipFile = downloadDataDir + File.separator + prjName + ".zip";
|
||||||
String exportColibFile = downloadDataDir + File.separator + prjName + EXPORT_FILE_SUFFIX;
|
String exportColibFile = downloadDataDir + File.separator + prjName + EXPORT_FILE_SUFFIX;
|
||||||
ZipUtil.zip(downloadDataDir + File.separator + prjName, exportZipFile);
|
ZipUtil.zip(downloadDataDir + File.separator + prjName + File.separator + prjName, exportZipFile);
|
||||||
AES aes = SecureUtil.aes(password.getBytes());
|
AES aes = SecureUtil.aes(password.getBytes());
|
||||||
try(
|
try(
|
||||||
InputStream inputStream = Files.newInputStream(Paths.get(exportZipFile));
|
InputStream inputStream = Files.newInputStream(Paths.get(exportZipFile));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue