|
@@ -0,0 +1,63 @@
|
|
|
+package com.yaoxiang.diagnosis.service;
|
|
|
+
|
|
|
+import com.yaoxiang.diagnosis.dao.SpecialKnowledgeRepo;
|
|
|
+import com.yaoxiang.diagnosis.entity.SpecialKnowledge;
|
|
|
+import com.yaoxiang.diagnosis.model.Result;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class SpecialKnowledgeService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SpecialKnowledgeRepo specialKnowledgeRepo;
|
|
|
+
|
|
|
+ public boolean add(List<SpecialKnowledge> list) {
|
|
|
+ for (SpecialKnowledge knowledge : list) {
|
|
|
+ if (knowledge.getParent() != null) {
|
|
|
+ knowledge.setParentId(knowledge.getParent().getId());
|
|
|
+ }
|
|
|
+ specialKnowledgeRepo.save(knowledge);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<SpecialKnowledge> list(Long subjectId, String grade) {
|
|
|
+ if (subjectId == null && StringUtils.isBlank(grade)) {
|
|
|
+ return specialKnowledgeRepo.findAll();
|
|
|
+ } else if (subjectId == null) {
|
|
|
+ return specialKnowledgeRepo.findByGrade(grade);
|
|
|
+ } else if (StringUtils.isNotBlank(grade)) {
|
|
|
+ return specialKnowledgeRepo.findBySubjectIdAndGrade(subjectId, grade);
|
|
|
+ }
|
|
|
+ return specialKnowledgeRepo.findBySubjectId(subjectId);
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<SpecialKnowledge> toTree(List<SpecialKnowledge> list) {
|
|
|
+ List<SpecialKnowledge> treeList = new ArrayList<>();
|
|
|
+ for (SpecialKnowledge tree : list) {
|
|
|
+
|
|
|
+ if (tree.getParentId() == null) {
|
|
|
+ treeList.add(tree);
|
|
|
+ }
|
|
|
+
|
|
|
+ for (SpecialKnowledge treeNode : list) {
|
|
|
+ if(treeNode.getParentId() == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (treeNode.getParentId().equals( tree.getId())) {
|
|
|
+ if (tree.getChildren() == null) {
|
|
|
+ tree.setChildren(new ArrayList<>());
|
|
|
+ }
|
|
|
+ tree.getChildren().add(treeNode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return treeList;
|
|
|
+
|
|
|
+ }
|
|
|
+}
|