This commit is contained in:
s2042968 2025-01-10 09:44:50 +08:00
commit 8dc4c731d0
5 changed files with 37 additions and 25 deletions

View File

@ -51,7 +51,7 @@ public class ServiceAspect {
} }
paramInfo = JSONUtil.toJsonStr(list); paramInfo = JSONUtil.toJsonStr(list);
} catch (Exception e) { } catch (Exception e) {
log.warn("切面异常", e.getMessage()); log.warn("切面异常--->{}", e.getMessage());
} }
} }
} }

View File

@ -1,6 +1,5 @@
package com.electromagnetic.industry.software.manage.controller; package com.electromagnetic.industry.software.manage.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.electromagnetic.industry.software.common.exception.BizException; import com.electromagnetic.industry.software.common.exception.BizException;
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
@ -8,9 +7,7 @@ import com.electromagnetic.industry.software.common.util.ElectromagneticResultUt
import com.electromagnetic.industry.software.manage.pojo.models.EdFileRelation; import com.electromagnetic.industry.software.manage.pojo.models.EdFileRelation;
import com.electromagnetic.industry.software.manage.pojo.req.CheckNameUniqueRequest; import com.electromagnetic.industry.software.manage.pojo.req.CheckNameUniqueRequest;
import com.electromagnetic.industry.software.manage.pojo.req.UpdateRelationDTO; import com.electromagnetic.industry.software.manage.pojo.req.UpdateRelationDTO;
import com.electromagnetic.industry.software.manage.service.EdFileRelationService;
import com.electromagnetic.industry.software.manage.service.serviceimpl.EdFileRelationServiceImpl; import com.electromagnetic.industry.software.manage.service.serviceimpl.EdFileRelationServiceImpl;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;

View File

@ -744,7 +744,9 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
.setPrjDir(false); .setPrjDir(false);
this.saveOrUpdate(newEdFileInfo); this.saveOrUpdate(newEdFileInfo);
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath()); String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath());
fileSystemService.save(file.getInputStream(), fileDestPath); FileUtil.writeFromStream(file.getInputStream(), fileDestPath);
EleCommonUtil.encryptFile(fileDestPath, SecureUtil.aes(password.getBytes()));
fileSystemService.save(FileUtil.getInputStream(fileDestPath), fileDestPath);
} }
} catch (Exception e) { } catch (Exception e) {
newEdFileInfo.setParentId(parentId) newEdFileInfo.setParentId(parentId)

View File

@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -22,6 +23,7 @@ import com.electromagnetic.industry.software.manage.pojo.resp.FileSimpleInfoVO;
import com.electromagnetic.industry.software.manage.service.EdFileRelationService; import com.electromagnetic.industry.software.manage.service.EdFileRelationService;
import com.electromagnetic.industry.software.manage.service.FileSystemService; import com.electromagnetic.industry.software.manage.service.FileSystemService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -43,6 +45,8 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
private CommonService commonService; private CommonService commonService;
@Resource @Resource
private FileSystemService fileSystemService; private FileSystemService fileSystemService;
@Value("${file.security.passwd}")
private String password;
/** /**
* 创建文件关系 * 创建文件关系
@ -230,7 +234,9 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
.setPrjDir(false); .setPrjDir(false);
edFileInfoService.saveOrUpdate(newEdFileInfo); edFileInfoService.saveOrUpdate(newEdFileInfo);
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath()); String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath());
fileSystemService.save(file.getInputStream(), fileDestPath); FileUtil.writeFromStream(file.getInputStream(), fileDestPath);
EleCommonUtil.encryptFile(fileDestPath, SecureUtil.aes(password.getBytes()));
fileSystemService.save(FileUtil.getInputStream(fileDestPath), fileDestPath);
// 创建文件关系 // 创建文件关系
EdFileRelation relation = new EdFileRelation(); EdFileRelation relation = new EdFileRelation();

View File

@ -1,7 +1,15 @@
package com.electromagnetic.industry.software.common.util; package com.electromagnetic.industry.software.common.util;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.symmetric.AES;
import com.electromagnetic.industry.software.common.exception.BizException;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -16,25 +24,7 @@ public final class EleCommonUtil {
// 编译正则表达式 // 编译正则表达式
private static final Pattern pattern = Pattern.compile(PATTERN); private static final Pattern pattern = Pattern.compile(PATTERN);
public static String getFileName(String fileFullName) { private static EleLog log = new EleLog(EleCommonUtil.class);
if (fileFullName == null) {
return "";
}
if (!fileFullName.contains(".")) {
return fileFullName;
}
int index = fileFullName.lastIndexOf(".");
return fileFullName.substring(0, index);
}
public static String getFileType(String fileFullName) {
if (fileFullName == null || !fileFullName.contains(".")) {
return "";
}
int index = fileFullName.lastIndexOf(".");
return fileFullName.substring(index + 1);
}
public static boolean isFileNameValid(String fileFullName) { public static boolean isFileNameValid(String fileFullName) {
if (StrUtil.isEmpty(fileFullName) || fileFullName.length() > 32) { if (StrUtil.isEmpty(fileFullName) || fileFullName.length() > 32) {
@ -52,4 +42,21 @@ public final class EleCommonUtil {
return now.format(formatter); return now.format(formatter);
} }
public static void encryptFile(String filePath, AES aes) {
String tmpPath = filePath + ".tmp";
try (
InputStream inputStream = Files.newInputStream(Paths.get(filePath));
OutputStream outputStream = Files.newOutputStream(Paths.get(tmpPath));
) {
aes.encrypt(inputStream, outputStream, true);
} catch (Exception e) {
String info = "文件加密失败";
log.error(info, e);
throw new BizException(-1, info);
} finally {
FileUtil.del(filePath);
FileUtil.move(new File(tmpPath), new File(filePath), true);
}
}
} }