Compare commits

...

2 Commits

@ -15,7 +15,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PathPathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@ -35,35 +35,45 @@ import com.tamguo.modules.book.service.IFileEntityService;
import com.tamguo.modules.book.service.IFileUploadService;
import com.tamguo.utils.FileMd5Utils;
/**
* DocumentController
*/
@Controller
@RequestMapping(value="document")
@RequestMapping(value = "document")
public class DocumentController {
private Logger logger = LoggerFactory.getLogger(getClass());
private Logger logger = LoggerFactory.getLogger(getClass()); // 创建日志记录器对象
@Autowired
IDocumentService iDocumentService;
IDocumentService iDocumentService; // 自动注入文档服务
@Autowired
IFileEntityService iFileEntityService;
IFileEntityService iFileEntityService; // 自动注入文件实体服务
@Autowired
IFileUploadService iFileUploadService;
IFileUploadService iFileUploadService; // 自动注入文件上传服务
@Value("${file.storage.path}")
private String fileStoragePath;
private String fileStoragePath; // 文件存储路径配置
@Value("${tamguo.domain.name}")
private String domainName;
private String domainName; // 域名配置
@SuppressWarnings("unchecked")
@RequestMapping(value = "{id}" , method = RequestMethod.GET)
/**
*
* @param id ID
* @return
*/
@RequestMapping(value = "{id}", method = RequestMethod.GET)
@ResponseBody
public Result getDocument(@PathVariable String id) {
DocumentEntity document = null;
DocumentEntity document = null; // 定义文档对象
try {
document = iDocumentService.selectById(id);
document = iDocumentService.selectById(id); // 根据 ID 获取文档信息
// 查询附件
List<FileUploadEntity> fileUploads = iFileUploadService.selectList(Condition.create().eq("biz_key", document.getId()).eq("biz_type", BizTypeEnum.DOCUMENT.getValue()));
if(!CollectionUtils.isEmpty(fileUploads)) {
for(int i=0 ; i<fileUploads.size() ; i++) {
if (!CollectionUtils.isEmpty(fileUploads)) {
for (int i = 0; i < fileUploads.size(); i++) {
FileUploadEntity fileUpload = fileUploads.get(i);
FileEntity fileEntity = iFileEntityService.selectOne(Condition.create().eq("file_id", fileUpload.getFileId()));
fileUpload.setFilePath(domainName + "files/" + fileEntity.getFilePath());
@ -72,152 +82,172 @@ public class DocumentController {
document.setFileUploads(fileUploads);
}
} catch (Exception e) {
logger.error(e.getMessage() , e );
return Result.failResult("查询失败");
logger.error(e.getMessage(), e); // 记录错误日志
return Result.failResult("查询失败"); // 返回查询失败结果
}
return Result.successResult(document);
return Result.successResult(document); // 返回查询成功结果
}
/**
*
*
* @param document
* @return
*/
@RequestMapping(value = "modify" , method = RequestMethod.POST)
@RequestMapping(value = "modify", method = RequestMethod.POST)
@ResponseBody
public Result modify(DocumentEntity document) {
try {
iDocumentService.modify(document);
iDocumentService.modify(document); // 修改文档内容
} catch (Exception e) {
logger.error(e.getMessage() , e );
return Result.failResult("保存失败");
logger.error(e.getMessage(), e); // 记录错误日志
return Result.failResult("保存失败"); // 返回保存失败结果
}
return Result.successResult("保存成功");
return Result.successResult("保存成功"); // 返回保存成功结果
}
/**
*
*
* @param document
* @return
*/
@RequestMapping(value = "create" , method = RequestMethod.POST)
@RequestMapping(value = "create", method = RequestMethod.POST)
@ResponseBody
public Result create(DocumentEntity document) {
try {
iDocumentService.create(document);
iDocumentService.create(document); // 创建文档
} catch (Exception e) {
logger.error(e.getMessage() , e );
return Result.failResult("保存失败");
logger.error(e.getMessage(), e); // 记录错误日志
return Result.failResult("保存失败"); // 返回保存失败结果
}
return Result.successResult(document);
return Result.successResult(document); // 返回保存成功结果
}
@SuppressWarnings("unchecked")
@RequestMapping(value = "uploadImage" , method = RequestMethod.POST)
/**
*
* @param file
* @param bookId ID
* @param request HTTP
* @return
*/
@RequestMapping(value = "uploadImage", method = RequestMethod.POST)
@ResponseBody
public Result uploadImage(@RequestParam("editormd-image-file") MultipartFile file, String bookId , HttpServletRequest request) {
public Result uploadImage(@RequestParam("editormd-image-file") MultipartFile file, String bookId, HttpServletRequest request) {
try {
String fileMd5 = FileMd5Utils.getMD5((FileInputStream)file.getInputStream());
FileEntity sysFile = iFileEntityService.selectOne(Condition.create().eq("file_md5", fileMd5));
if(sysFile != null) {
String fileMd5 = FileMd5Utils.getMD5((FileInputStream) file.getInputStream()); // 获取文件的 MD5 值
FileEntity sysFile = iFileEntityService.selectOne(Condition.create().eq("file_md5", fileMd5)); // 根据 MD5 值查询系统文件
if (sysFile!= null) {
sysFile.setFilePath(domainName + "files/" + sysFile.getFilePath());
return Result.successResult(sysFile);
return Result.successResult(sysFile); // 如果文件已存在,直接返回文件信息
}
String filePath = fileStoragePath + "book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId;
String filePath = fileStoragePath + "book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId; // 生成文件存储路径
File dest = new File(filePath);
if(!dest.exists()) {
dest.mkdirs();
if (!dest.exists()) {
dest.mkdirs(); // 创建存储目录
}
// save 文件
FileUtils.writeByteArrayToFile(new File(filePath + "/" + file.getOriginalFilename()) , file.getBytes());
FileEntity fileEntity = new FileEntity();
fileEntity.setFileContentType(file.getContentType());
fileEntity.setFileExtension(file.getOriginalFilename());
fileEntity.setFileMd5(FileMd5Utils.getMD5((FileInputStream)file.getInputStream()));
fileEntity.setFileSize(file.getSize());
fileEntity.setFilePath("book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId + "/" + file.getOriginalFilename());
iFileEntityService.insert(fileEntity);
fileEntity.setFilePath(domainName + "files/" + fileEntity.getFilePath());
return Result.successResult(fileEntity);
FileUtils.writeByteArrayToFile(new File(filePath + "/" + file.getOriginalFilename()), file.getBytes()); // 保存文件
FileEntity fileEntity = new FileEntity(); // 创建文件实体对象
fileEntity.setFileContentType(file.getContentType()); // 设置文件类型
fileEntity.setFileExtension(file.getOriginalFilename()); // 设置文件扩展名
fileEntity.setFileMd5(FileMd5Utils.getMD5((FileInputStream) file.getInputStream())); // 设置文件 MD5 值
fileEntity.setFileSize(file.getSize()); // 设置文件大小
fileEntity.setFilePath("book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId + "/" + file.getOriginalFilename()); // 设置文件路径
iFileEntityService.insert(fileEntity); // 插入文件实体到数据库
fileEntity.setFilePath(domainName + "files/" + fileEntity.getFilePath()); // 设置文件路径
return Result.successResult(fileEntity); // 返回文件信息
} catch (IOException e) {
e.printStackTrace();
return Result.failResult("上传失败");
return Result.failResult("上传失败"); // 如果上传失败,返回失败结果
}
}
/**
*
*
* @param file
* @param documentId ID
* @param bookId ID
* @param request HTTP
* @return
*/
@SuppressWarnings("unchecked")
@RequestMapping(value = "uploadFile" , method = RequestMethod.POST)
@RequestMapping(value = "uploadFile", method = RequestMethod.POST)
@ResponseBody
public Result uploadFile(@RequestParam("editormd-file-file") MultipartFile file , String documentId , String bookId , HttpServletRequest request) {
public Result uploadFile(@RequestParam("editormd-file-file") MultipartFile file, String documentId, String bookId, HttpServletRequest request) {
try {
String fileMd5 = FileMd5Utils.getMD5((FileInputStream)file.getInputStream());
FileEntity sysFile = iFileEntityService.selectOne(Condition.create().eq("file_md5", fileMd5));
String fileMd5 = FileMd5Utils.getMD5((FileInputStream) file.getInputStream()); // 获取文件的 MD5 值
FileEntity sysFile = iFileEntityService.selectOne(Condition.create().eq("file_md5", fileMd5)); // 根据 MD5 值查询系统文件
// 文件不存在
if(sysFile == null) {
String filePath = fileStoragePath + "book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId;
if (sysFile == null) {
String filePath = fileStoragePath + "book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId; // 生成文件存储路径
File dest = new File(filePath);
if(!dest.exists()) {
dest.mkdirs();
if (!dest.exists()) {
dest.mkdirs(); // 创建存储目录
}
// save 文件
FileUtils.writeByteArrayToFile(new File(filePath + "/" + file.getOriginalFilename()) , file.getBytes());
sysFile = new FileEntity();
sysFile.setFileContentType(file.getContentType());
sysFile.setFileExtension(file.getOriginalFilename());
sysFile.setFileMd5(FileMd5Utils.getMD5((FileInputStream)file.getInputStream()));
sysFile.setFileSize(file.getSize());
sysFile.setFilePath("book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId + "/" + file.getOriginalFilename());
iFileEntityService.insert(sysFile);
FileUtils.writeByteArrayToFile(new File(filePath + "/" + file.getOriginalFilename()), file.getBytes()); // 保存文件
sysFile = new FileEntity(); // 创建文件实体对象
sysFile.setFileContentType(file.getContentType()); // 设置文件类型
sysFile.setFileExtension(file.getOriginalFilename()); // 设置文件扩展名
sysFile.setFileMd5(FileMd5Utils.getMD5((FileInputStream) file.getInputStream())); // 设置文件 MD5 值
sysFile.setFileSize(file.getSize()); // 设置文件大小
sysFile.setFilePath("book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId + "/" + file.getOriginalFilename()); // 设置文件路径
iFileEntityService.insert(sysFile); // 插入文件实体到数据库
}
// 创建上传记录
FileUploadEntity fileUpload = new FileUploadEntity();
fileUpload.setBizKey(documentId);
fileUpload.setBizType(BizTypeEnum.DOCUMENT);
fileUpload.setCreateBy("system");
fileUpload.setCreateDate(new Date());
fileUpload.setFileId(sysFile.getFileId());
fileUpload.setFileName(sysFile.getFileExtension());
fileUpload.setFileType(file.getContentType());
fileUpload.setUpdateBy("system");
fileUpload.setUpdateDate(new Date());
fileUpload.setStatus(FileUploadStatusEnum.NORMAL);
iFileUploadService.insert(fileUpload);
fileUpload.setFilePath(domainName + "files/" + sysFile.getFilePath());
fileUpload.setFileSize(sysFile.getFileSize());
return Result.successResult(fileUpload);
FileUploadEntity fileUpload = new FileUploadEntity(); // 创建文件上传记录对象
fileUpload.setBizKey(documentId); // 设置业务键
fileUpload.setBizType(BizTypeEnum.DOCUMENT); // 设置业务类型
fileUpload.setCreateBy("system"); // 设置创建者
fileUpload.setCreateDate(new Date()); // 设置创建日期
fileUpload.setFileId(sysFile.getFileId()); // 设置文件 ID
fileUpload.setFileName(sysFile.getFileExtension()); // 设置文件名称
fileUpload.setFileType(file.getContentType()); // 设置文件类型
fileUpload.setUpdateBy("system"); // 设置更新者
fileUpload.setUpdateDate(new Date()); // 设置更新日期
fileUpload.setStatus(FileUploadStatusEnum.NORMAL); // 设置状态为正常
iFileUploadService.insert(fileUpload); // 插入文件上传记录到数据库
fileUpload.setFilePath(domainName + "files/" + sysFile.getFilePath()); // 设置文件路径
fileUpload.setFileSize(sysFile.getFileSize()); // 设置文件大小
return Result.successResult(fileUpload); // 返回文件上传记录信息
} catch (IOException e) {
e.printStackTrace();
return Result.failResult("上传失败");
return Result.failResult("上传失败"); // 如果上传失败,返回失败结果
}
}
/**
*
*
* @param id ID
* @return
*/
@RequestMapping(value = "removeFile" , method = RequestMethod.POST)
@RequestMapping(value = "removeFile", method = RequestMethod.POST)
@ResponseBody
public Result removeFile(String id) {
try {
iFileUploadService.deleteById(id);
iFileUploadService.deleteById(id); // 根据 ID 删除文件上传记录
} catch (Exception e) {
return Result.result(1, null, "删除失败");
return Result.result(1, null, "删除失败"); // 如果删除失败,返回失败结果
}
return Result.result(0, null, "删除成功");
return Result.result(0, null, "删除成功"); // 如果删除成功,返回成功结果
}
@SuppressWarnings("unchecked")
@RequestMapping(value="delete" , method = RequestMethod.POST)
/**
*
* @param id ID
* @return
*/
@RequestMapping(value = "delete", method = RequestMethod.POST)
@ResponseBody
public Result delete(String id) {
try {
DocumentEntity document = iDocumentService.selectById(id);
iDocumentService.delete(Condition.create().eq("batch_no", document.getBatchNo()));
DocumentEntity document = iDocumentService.selectById(id); // 根据 ID 获取文档信息
iDocumentService.delete(Condition.create().eq("batch_no", document.getBatchNo())); // 根据批次号删除文档
} catch (Exception e) {
return Result.result(1, null, "删除失败");
return Result.result(1, null, "删除失败"); // 如果删除失败,返回失败结果
}
return Result.result(0, null, "删除成功");
return Result.result(0, null, "删除成功"); // 如果删除成功,返回成功结果
}
}
Loading…
Cancel
Save