刘光辉
6 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package jnpf.dmsService.search;
 
import jnpf.dmsMapper.DmsDocumentMapper;
import jnpf.dmsMapper.DmsSearchIndexSourceMapper;
import jnpf.dmsService.search.meili.DmsMeilisearchClient;
import jnpf.dmsService.search.meili.DmsSearchIndexDocument;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.UUID;
 
@Service
@RequiredArgsConstructor
public class DmsSearchIndexWriter {
    private final DmsDocumentMapper documents;
    private final DmsSearchIndexSourceMapper sources;
    private final DmsMeilisearchClient client;
 
    /** Serialize final submission with expiry so late extraction cannot resurrect a deleted index entry. */
    @Transactional(rollbackFor = Exception.class)
    public void publish(DmsSearchIndexDocument document) throws IOException {
        UUID documentId = UUID.fromString(document.getDocumentId());
        UUID versionId = UUID.fromString(document.getFileVersionId());
        if (documents.selectByTenantAndIdForUpdate(document.getTenantId(), documentId) == null) return;
        if (sources.selectSource(document.getTenantId(), documentId, versionId) == null) return;
        client.upsert(document);
    }
}