|
@@ -9,6 +9,8 @@ import org.springframework.stereotype.Component;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -21,6 +23,8 @@ import java.util.stream.Collectors;
|
|
|
@Component
|
|
|
public class RetrievalFacade extends RetrievalServiceImpl {
|
|
|
|
|
|
+ public static final String EXIST = "1";
|
|
|
+
|
|
|
@Autowired
|
|
|
QuestionFacade questionFacade;
|
|
|
|
|
@@ -36,12 +40,30 @@ public class RetrievalFacade extends RetrievalServiceImpl {
|
|
|
}
|
|
|
//获取同义词标签信息
|
|
|
List<RetrievalDTO> data = this.getSymptopInfo(retrievalVO);
|
|
|
- List<Long> questionIdList = data.stream()
|
|
|
+ List<RetrievalDTO> resultSubitemData = new ArrayList<RetrievalDTO>();
|
|
|
+ Map<String,String> subitemMap = new HashMap<String,String>();
|
|
|
+ //筛选包含自身的
|
|
|
+ for(RetrievalDTO bean: data) {
|
|
|
+ if("1".equals(bean.getShowType().toString())) { //本身
|
|
|
+ subitemMap.put(bean.getQuestionId() + "",EXIST);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //自身和同义词同时出现,删除同义词
|
|
|
+ for(RetrievalDTO bean: data) {
|
|
|
+ if(EXIST.equals(subitemMap.get(bean.getQuestionId()+ ""))) {
|
|
|
+ if(!"2".equals(bean.getShowType().toString())) { //当出现本体和同义词时,不显示同义词
|
|
|
+ resultSubitemData.add(bean);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ resultSubitemData.add(bean);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Long> questionIdList = resultSubitemData.stream()
|
|
|
.map(r -> r.getQuestionId())
|
|
|
.collect(Collectors.toList());
|
|
|
//将标签名放入实体
|
|
|
Map<Long, QuestionInfo> map = questionFacade.getQuestionInfos(questionIdList);
|
|
|
- for (RetrievalDTO retrievalDTO : data) {
|
|
|
+ for (RetrievalDTO retrievalDTO : resultSubitemData) {
|
|
|
retrievalDTO.setName(map.get(retrievalDTO.getQuestionId()).getTagName());
|
|
|
}
|
|
|
return data;
|