添加实体统一功能(初版)
parent
e181c00c40
commit
fe38922324
@ -0,0 +1,26 @@
|
|||||||
|
package com.supervision.pdfqaserver.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class KeywordSynonymDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 词语
|
||||||
|
*/
|
||||||
|
private String term;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 词频
|
||||||
|
*/
|
||||||
|
private Integer frequency;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 词性
|
||||||
|
*/
|
||||||
|
private String nature;
|
||||||
|
|
||||||
|
private List<KeywordSynonymDTO> synonyms = new ArrayList<>();
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.supervision.pdfqaserver.mapper;
|
||||||
|
|
||||||
|
import com.supervision.pdfqaserver.domain.KeywordSynonym;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Administrator
|
||||||
|
* @description 针对表【keyword_synonym(关键字同义词表)】的数据库操作Mapper
|
||||||
|
* @createDate 2025-06-23 16:49:09
|
||||||
|
* @Entity com.supervision.pdfqaserver.domain.KeywordSynonym
|
||||||
|
*/
|
||||||
|
public interface KeywordSynonymMapper extends BaseMapper<KeywordSynonym> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.supervision.pdfqaserver.service;
|
||||||
|
|
||||||
|
import com.supervision.pdfqaserver.domain.KeywordSynonym;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.supervision.pdfqaserver.dto.KeywordSynonymDTO;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Administrator
|
||||||
|
* @description 针对表【keyword_synonym(关键字同义词表)】的数据库操作Service
|
||||||
|
* @createDate 2025-06-23 16:49:09
|
||||||
|
*/
|
||||||
|
public interface KeywordSynonymService extends IService<KeywordSynonym> {
|
||||||
|
|
||||||
|
|
||||||
|
List<KeywordSynonymDTO> listAllSynonyms();
|
||||||
|
|
||||||
|
String getStandardTerm(String term,List<KeywordSynonymDTO> synonyms);
|
||||||
|
}
|
@ -0,0 +1,87 @@
|
|||||||
|
package com.supervision.pdfqaserver.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.supervision.pdfqaserver.domain.KeywordSynonym;
|
||||||
|
import com.supervision.pdfqaserver.dto.KeywordSynonymDTO;
|
||||||
|
import com.supervision.pdfqaserver.service.KeywordSynonymService;
|
||||||
|
import com.supervision.pdfqaserver.mapper.KeywordSynonymMapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Administrator
|
||||||
|
* @description 针对表【keyword_synonym(关键字同义词表)】的数据库操作Service实现
|
||||||
|
* @createDate 2025-06-23 16:49:09
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class KeywordSynonymServiceImpl extends ServiceImpl<KeywordSynonymMapper, KeywordSynonym>
|
||||||
|
implements KeywordSynonymService{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<KeywordSynonymDTO> listAllSynonyms() {
|
||||||
|
List<KeywordSynonym> list = super.lambdaQuery().list();
|
||||||
|
List<KeywordSynonymDTO> result = new ArrayList<>();
|
||||||
|
if (CollUtil.isEmpty(list)){
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (KeywordSynonym synonym : list) {
|
||||||
|
String standardTerm = synonym.getStandardTerm();
|
||||||
|
if (StrUtil.isEmpty(standardTerm)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Optional<KeywordSynonymDTO> optional = result.stream().filter(s -> StrUtil.equals(s.getTerm(), standardTerm)).findAny();
|
||||||
|
KeywordSynonymDTO keywordSynonymDTO;
|
||||||
|
if (optional.isEmpty()){
|
||||||
|
keywordSynonymDTO = new KeywordSynonymDTO();
|
||||||
|
keywordSynonymDTO.setTerm(standardTerm);
|
||||||
|
keywordSynonymDTO.setFrequency(synonym.getFrequency());
|
||||||
|
keywordSynonymDTO.setNature(synonym.getNature());
|
||||||
|
result.add(keywordSynonymDTO);
|
||||||
|
}else {
|
||||||
|
keywordSynonymDTO = optional.get();
|
||||||
|
}
|
||||||
|
List<KeywordSynonymDTO> synonyms = keywordSynonymDTO.getSynonyms();
|
||||||
|
Optional<KeywordSynonymDTO> any = synonyms.stream().filter(s -> StrUtil.equals(s.getTerm(), synonym.getSynonyms()))
|
||||||
|
.findAny();
|
||||||
|
if (any.isEmpty()) {
|
||||||
|
KeywordSynonymDTO synonymDTO = new KeywordSynonymDTO();
|
||||||
|
synonymDTO.setTerm(synonym.getSynonyms());
|
||||||
|
synonymDTO.setFrequency(synonym.getFrequency());
|
||||||
|
synonymDTO.setNature(synonym.getNature());
|
||||||
|
synonyms.add(synonymDTO);
|
||||||
|
}else {
|
||||||
|
log.warn("listAllSynonyms: 同义词重复,词语:{},同义词:{}", standardTerm, synonym.getSynonyms());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getStandardTerm(String term, List<KeywordSynonymDTO> synonyms) {
|
||||||
|
if (StrUtil.isEmpty(term) || CollUtil.isEmpty(synonyms)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
for (KeywordSynonymDTO synonym : synonyms) {
|
||||||
|
if (StrUtil.equals(synonym.getTerm(), term)) {
|
||||||
|
return synonym.getTerm();
|
||||||
|
}
|
||||||
|
for (KeywordSynonymDTO subSynonym : synonym.getSynonyms()) {
|
||||||
|
if (StrUtil.equals(subSynonym.getTerm(), term)) {
|
||||||
|
return synonym.getTerm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.supervision.pdfqaserver.mapper.KeywordSynonymMapper">
|
||||||
|
|
||||||
|
<resultMap id="BaseResultMap" type="com.supervision.pdfqaserver.domain.KeywordSynonym">
|
||||||
|
<id property="id" column="id" jdbcType="VARCHAR"/>
|
||||||
|
<result property="standardTerm" column="standard_term" jdbcType="VARCHAR"/>
|
||||||
|
<result property="synonyms" column="synonyms" jdbcType="VARCHAR"/>
|
||||||
|
<result property="frequency" column="frequency" jdbcType="INTEGER"/>
|
||||||
|
<result property="nature" column="nature" jdbcType="VARCHAR"/>
|
||||||
|
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
||||||
|
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
id,standard_term,synonyms,
|
||||||
|
frequency,nature,create_time,
|
||||||
|
update_time
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue