From 870d11cc46f4ec260d94f26dd801a2cf308889a7 Mon Sep 17 00:00:00 2001 From: jmal Date: Wed, 8 May 2024 18:09:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=87=8D=E5=BB=BA?= =?UTF-8?q?=E7=B4=A2=E5=BC=95=E5=A4=B1=E8=B4=A5=E6=97=B6=E4=BC=9A=E8=A6=86?= =?UTF-8?q?=E7=9B=96=E5=8D=9A=E5=AE=A2=E6=96=87=E7=AB=A0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clouddisk/service/impl/SettingService.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/com/jmal/clouddisk/service/impl/SettingService.java b/src/main/java/com/jmal/clouddisk/service/impl/SettingService.java index 6698bd7f..c60fd2f5 100644 --- a/src/main/java/com/jmal/clouddisk/service/impl/SettingService.java +++ b/src/main/java/com/jmal/clouddisk/service/impl/SettingService.java @@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; @@ -234,6 +235,11 @@ private void createFile(Path file) { commonFileService.createFile(username, file.toFile(), null, null); } catch (Exception e) { log.error("{}{}", e.getMessage(), file, e); + FileDocument fileDocument = commonFileService.getFileDocument(username, file.toFile().getAbsolutePath()); + if (fileDocument != null) { + // 需要移除删除标记 + removeDeleteFlagOfDoc(fileDocument.getId()); + } } finally { if (totalCount > 0) { if (processCount.get() <= 2) { @@ -250,6 +256,18 @@ private void createFile(Path file) { } } + /** + * 移除删除标记 + * @param fileId fileId + */ + public void removeDeleteFlagOfDoc(String fileId) { + Query query = new Query(); + query.addCriteria(Criteria.where("_id").is(fileId)); + Update update = new Update(); + update.unset("delete"); + mongoTemplate.updateMulti(query, update, CommonFileService.COLLECTION_NAME); + } + private static class FileCountVisitor extends SimpleFileVisitor { private final AtomicLong count = new AtomicLong(0);