diff --git a/bookshelfplus-frontend/views/dashboard/admin/FileManage.html b/bookshelfplus-frontend/views/dashboard/admin/FileManage.html index 837fd06..dfa14e4 100644 --- a/bookshelfplus-frontend/views/dashboard/admin/FileManage.html +++ b/bookshelfplus-frontend/views/dashboard/admin/FileManage.html @@ -43,7 +43,7 @@ console.log(element); renderData.push({ 编号: `${element.id}`, - 关联书籍: ` + 关联书籍: element.bookId === 0 ? "未关联书籍" : ` ID: ${element.bookId} 查看 修改 diff --git a/bookshelfplus-frontend/views/dashboard/admin/FileManage_ObjectManage.html b/bookshelfplus-frontend/views/dashboard/admin/FileManage_ObjectManage.html index 6a15cd3..d0c0985 100644 --- a/bookshelfplus-frontend/views/dashboard/admin/FileManage_ObjectManage.html +++ b/bookshelfplus-frontend/views/dashboard/admin/FileManage_ObjectManage.html @@ -1,7 +1,7 @@ @@ -33,18 +33,23 @@ 编号: `${element.id}`, 关联文件: ` ID: ${element.fileId} - 查看 + 查看 `, 文件名: `${element.fileName}`, - 格式: `${element.fileType}`, + 修改日期: element.lastModified === 0 ? "未知" : ` + ${new Date(element.lastModified).toISOString().replace(/T/, ' ').replace(/\..+/, '')} + `, + 格式: ` + ${element.fileType ? element.fileType : "未知"} + `, 密码: ` 文件密码: ${element.filePwd}
提取码: ${element.fileShareCode}
`, - // 文件密码: `${element.filePwd}`, - // 提取码: `${element.fileShareCode}`, - 存储介质: `${element.storageMediumType}`, - "哈希(双击全选)": `${element.fileSha1}`, + 存储介质: ` + ${element.storageMediumType} + `, + "哈希(双击全选)": `${element.fileSha1 ? element.fileSha1 : "未知"}`, 状态: `${(element.uploadStatus ? element.uploadStatus : "未知") .replace("SUCCESS", "成功") .replace("UPLOADING", "正在上传") diff --git a/bookshelfplus-frontend/views/dashboard/admin/FileManage_Upload.html b/bookshelfplus-frontend/views/dashboard/admin/FileManage_Upload.html index 94e7188..2f04f43 100644 --- a/bookshelfplus-frontend/views/dashboard/admin/FileManage_Upload.html +++ b/bookshelfplus-frontend/views/dashboard/admin/FileManage_Upload.html @@ -104,6 +104,7 @@ 文件扩展名:
文件名(不含扩展名):
文件大小:
+ 修改日期:
文件SHA1:

计算文件哈希进度

@@ -135,6 +136,7 @@ fileName: "", fileSize: 0, fileType: "", + lastModified: "", fileSha1: "", fileExt: "", fileNameWithoutExt: "", @@ -196,6 +198,7 @@ fileInfo.fileName = file.name; fileInfo.fileSize = file.size; fileInfo.fileType = file.type; + fileInfo.lastModified = file.lastModified; // 获取文件扩展名:首先按照 . 拆分,然后删掉第一个元素(考虑无扩展名文件),再取出最后一个元素 let fileNameSplit = file.name.split("."); fileNameSplit.shift(); @@ -208,6 +211,7 @@ document.getElementById("file-ext").innerHTML = fileInfo.fileExt; document.getElementById("file-name-no-ext").innerHTML = fileInfo.fileNameWithoutExt; document.getElementById("file-size").innerHTML = sOutput; + document.getElementById("file-lastModified").innerHTML = new Date(fileInfo.lastModified).toISOString().replace(/T/, ' ').replace(/\..+/, ''); // 计算文件哈希 let sha1 = await sha1File(file, (file) => { @@ -354,6 +358,7 @@ fileName: fileInfo.fileNameWithoutExt, fileSize: fileInfo.fileSize, // fileType: fileInfo.fileType, + lastModified: fileInfo.lastModified, fileSha1: fileInfo.fileSha1, fileExt: fileInfo.fileExt, fileId: $("#fileAssociator").val() // 关联的文件ID,创建新文件则为0 diff --git a/bookshelfplus/src/main/java/plus/bookshelf/Controller/Controller/FileController.java b/bookshelfplus/src/main/java/plus/bookshelf/Controller/Controller/FileController.java index c380fd7..66e3957 100644 --- a/bookshelfplus/src/main/java/plus/bookshelf/Controller/Controller/FileController.java +++ b/bookshelfplus/src/main/java/plus/bookshelf/Controller/Controller/FileController.java @@ -50,9 +50,6 @@ public class FileController extends BaseController { @Autowired FileObjectServiceImpl fileObjectService; - // @Autowired - // ScheduleTaskServiceImpl scheduleTaskService; - @ApiOperation(value = "【管理员】查询文件列表", notes = "查询文件列表") @RequestMapping(value = "list", method = {RequestMethod.POST}, consumes = {CONTENT_TYPE_FORMED}) @ResponseBody @@ -131,6 +128,7 @@ public class FileController extends BaseController { // 以下为 PUT 请求必传参数 @RequestParam(value = "fileSize", required = false) Long fileSize, // @RequestParam(value = "fileType", required = false) String fileType, + @RequestParam(value = "lastModified", required = false) Long lastModified, @RequestParam(value = "fileSha1", required = false) String fileSha1, @RequestParam(value = "fileExt", required = false) String fileExt, @RequestParam(value = "fileId", required = false) Integer fileId // 关联的文件ID,创建新文件则为0 @@ -168,7 +166,7 @@ public class FileController extends BaseController { if (isExist) throw new BusinessException(BusinessErrorCode.PARAMETER_VALIDATION_ERROR, "文件已存在"); fileObjectService.uploadFile(fileId, fileName, bookSaveFolder + fileName, fileSize, - fileSha1, fileExt, fileName, FileStorageMediumEnum.QCLOUD_COS, ""); + fileSha1, fileExt, fileName, FileStorageMediumEnum.QCLOUD_COS, "", lastModified); break; case GET: if (!isExist) throw new BusinessException(BusinessErrorCode.PARAMETER_VALIDATION_ERROR, "文件不存在"); @@ -190,6 +188,7 @@ public class FileController extends BaseController { /** * 腾讯云 COS 文件上传成功回调方法 + * * @param eventStr * @param contextStr * @return diff --git a/bookshelfplus/src/main/java/plus/bookshelf/Controller/VO/FileObjectVO.java b/bookshelfplus/src/main/java/plus/bookshelf/Controller/VO/FileObjectVO.java index 9aef958..3bb1253 100644 --- a/bookshelfplus/src/main/java/plus/bookshelf/Controller/VO/FileObjectVO.java +++ b/bookshelfplus/src/main/java/plus/bookshelf/Controller/VO/FileObjectVO.java @@ -33,6 +33,9 @@ public class FileObjectVO { // 文件提取码 String fileShareCode; + // 文件最后修改时间戳 + Long lastModified; + // 文件上传状态 String uploadStatus; diff --git a/bookshelfplus/src/main/java/plus/bookshelf/Dao/DO/FileObjectDO.java b/bookshelfplus/src/main/java/plus/bookshelf/Dao/DO/FileObjectDO.java index c9b2c6f..8a3af96 100644 --- a/bookshelfplus/src/main/java/plus/bookshelf/Dao/DO/FileObjectDO.java +++ b/bookshelfplus/src/main/java/plus/bookshelf/Dao/DO/FileObjectDO.java @@ -100,6 +100,15 @@ public class FileObjectDO { */ private String fileSha1; + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column file_object_info.last_modified + * + * @mbg.generated + */ + private Long lastModified; + /** * * This field was generated by MyBatis Generator. @@ -373,6 +382,30 @@ public class FileObjectDO { this.fileSha1 = fileSha1 == null ? null : fileSha1.trim(); } + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column file_object_info.last_modified + * + * @return the value of file_object_info.last_modified + * + * @mbg.generated + */ + public Long getLastModified() { + return lastModified; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column file_object_info.last_modified + * + * @param lastModified the value for file_object_info.last_modified + * + * @mbg.generated + */ + public void setLastModified(Long lastModified) { + this.lastModified = lastModified; + } + /** * This method was generated by MyBatis Generator. * This method returns the value of the database column file_object_info.additional_fields diff --git a/bookshelfplus/src/main/java/plus/bookshelf/Service/Impl/FileObjectServiceImpl.java b/bookshelfplus/src/main/java/plus/bookshelf/Service/Impl/FileObjectServiceImpl.java index 769dc9a..e87080c 100644 --- a/bookshelfplus/src/main/java/plus/bookshelf/Service/Impl/FileObjectServiceImpl.java +++ b/bookshelfplus/src/main/java/plus/bookshelf/Service/Impl/FileObjectServiceImpl.java @@ -107,7 +107,7 @@ public class FileObjectServiceImpl implements FileObjectService { @Transactional public Boolean uploadFile(Integer fileId, String fileName, String filePath, Long fileSize, String fileSHA1, String fileExt, String fileNameWithoutExt, FileStorageMediumEnum fileStorageMediumEnum, - String bookOrigin + String bookOrigin, Long lastModified ) throws InvocationTargetException, IllegalAccessException, BusinessException { if (fileId == 0) { @@ -153,6 +153,7 @@ public class FileObjectServiceImpl implements FileObjectService { fileObjectModel.setFilePath(filePath); fileObjectModel.setFileSha1(fileSHA1); fileObjectModel.setUploadStatus("UPLOADING"); + fileObjectModel.setLastModified(lastModified); // 其余使用默认设置 fileObjectModel.setFilePwd(""); diff --git a/bookshelfplus/src/main/java/plus/bookshelf/Service/Model/FileObjectModel.java b/bookshelfplus/src/main/java/plus/bookshelf/Service/Model/FileObjectModel.java index 5f9cc7c..c4c125b 100644 --- a/bookshelfplus/src/main/java/plus/bookshelf/Service/Model/FileObjectModel.java +++ b/bookshelfplus/src/main/java/plus/bookshelf/Service/Model/FileObjectModel.java @@ -33,6 +33,9 @@ public class FileObjectModel { // 文件提取码 String fileShareCode; + // 文件最后修改时间戳 + Long lastModified; + // 文件上传状态 String uploadStatus; diff --git a/bookshelfplus/src/main/java/plus/bookshelf/Service/Service/FileObjectService.java b/bookshelfplus/src/main/java/plus/bookshelf/Service/Service/FileObjectService.java index b33ce52..16295d4 100644 --- a/bookshelfplus/src/main/java/plus/bookshelf/Service/Service/FileObjectService.java +++ b/bookshelfplus/src/main/java/plus/bookshelf/Service/Service/FileObjectService.java @@ -45,7 +45,7 @@ public interface FileObjectService { * @throws BusinessException */ @Transactional - Boolean uploadFile(Integer fileId, String fileName, String filePath, Long fileSize, String fileSHA1, String fileExt, String fileNameWithoutExt, FileStorageMediumEnum fileStorageMediumEnum, String bookOrigin) throws InvocationTargetException, IllegalAccessException, BusinessException; + Boolean uploadFile(Integer fileId, String fileName, String filePath, Long fileSize, String fileSHA1, String fileExt, String fileNameWithoutExt, FileStorageMediumEnum fileStorageMediumEnum, String bookOrigin, Long lastModified) throws InvocationTargetException, IllegalAccessException, BusinessException; /** * 修改文件对象上传状态信息 diff --git a/bookshelfplus/src/main/resources/mapping/FileObjectDOMapper.xml b/bookshelfplus/src/main/resources/mapping/FileObjectDOMapper.xml index 3fefdd0..5ad4171 100644 --- a/bookshelfplus/src/main/resources/mapping/FileObjectDOMapper.xml +++ b/bookshelfplus/src/main/resources/mapping/FileObjectDOMapper.xml @@ -17,6 +17,7 @@ + @@ -25,7 +26,7 @@ This element is automatically generated by MyBatis Generator, do not modify. --> id, file_id, file_name, file_size, file_type, storage_medium_type, file_path, file_pwd, - file_share_code, upload_status, file_sha1, additional_fields + file_share_code, upload_status, file_sha1, last_modified, additional_fields