pdf-qa-server/src/main/java/com/supervision/pdfqaserver/service/impl/DomainMetadataServiceImpl.java

104 lines
3.9 KiB
Java

package com.supervision.pdfqaserver.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.pdfqaserver.domain.DomainMetadata;
import com.supervision.pdfqaserver.dto.DomainMetadataDTO;
import com.supervision.pdfqaserver.service.DomainMetadataService;
import com.supervision.pdfqaserver.mapper.DomainMetadataMapper;
import com.supervision.pdfqaserver.service.ErAttributeService;
import com.supervision.pdfqaserver.service.IntentionDomainMetadataService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author Administrator
* @description domain_metadata()Service
* @createDate 2025-04-27 11:45:24
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class DomainMetadataServiceImpl extends ServiceImpl<DomainMetadataMapper, DomainMetadata>
implements DomainMetadataService{
private final IntentionDomainMetadataService intentionDomainMetadataService;
private final ErAttributeService erAttributeService;
@Override
public void saveIfNotExists(DomainMetadata metadata) {
boolean exists = this.lambdaQuery()
.eq(DomainMetadata::getSourceType, metadata.getSourceType())
.eq(DomainMetadata::getTargetType, metadata.getTargetType())
.eq(DomainMetadata::getRelation, metadata.getRelation()).exists();
if (!exists) {
this.save(metadata);
}
}
@Override
public void saveIfNotExists(DomainMetadata metadata, String domainCategoryId) {
DomainMetadata data = this.getByPrimaryKey(metadata.getSourceType(), metadata.getTargetType(), metadata.getRelation(), domainCategoryId);
if (null != data){
metadata.setId(data.getId());
}else {
super.save(metadata);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void batchSaveOrUpdateMetadata(List<DomainMetadataDTO> metadatas,String intentionId,String domainCategoryId) {
if (CollUtil.isEmpty(metadatas)){
return;
}
Assert.notEmpty(domainCategoryId, "行业分类ID不能为空");
Assert.notEmpty(intentionId, "意图ID不能为空");
for (DomainMetadataDTO metadata : metadatas) {
DomainMetadata data = this.getByPrimaryKey(metadata.getSourceType(), metadata.getTargetType(), metadata.getRelation(), domainCategoryId);
if (null != data){
metadata.setId(data.getId());
}else {
DomainMetadata domainMetadata = metadata.toDomainMetadata();
this.saveIfNotExists(domainMetadata, domainCategoryId);
metadata.setId(domainMetadata.getId());
}
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void completeSave(DomainMetadataDTO domainMetadataDTO) {
/* if (CollUtil.isEmpty(domainMetadataDTOS)){
return;
}
for (DomainMetadataDTO domainMetadataDTO : domainMetadataDTOS) {
DomainMetadata domainMetadata = domainMetadataDTO.toDomainMetadata();
this.saveIfNotExists(domainMetadata);
// 保存属性信息
}*/
}
@Override
public DomainMetadata getByPrimaryKey(String sourceType, String targetType, String relation, String domainCategoryId) {
return this.lambdaQuery()
.eq(DomainMetadata::getSourceType, sourceType)
.eq(DomainMetadata::getTargetType, targetType)
.eq(DomainMetadata::getRelation, relation)
.eq(DomainMetadata::getDomainCategoryId, domainCategoryId)
.one();
}
}