|
@@ -0,0 +1,95 @@
|
|
|
+package com.qizhen.healsphere.service.impl;
|
|
|
+
|
|
|
+import com.qizhen.healsphere.repository.neo4j.BaseNodeRepository;
|
|
|
+import com.qizhen.healsphere.service.EntityService;
|
|
|
+import com.qizhen.healsphere.web.vo.CreateEntityVO;
|
|
|
+import com.qizhen.healsphere.web.vo.EntityVO;
|
|
|
+import com.qizhen.healsphere.web.vo.UpdateEntityVO;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class EntityServiceImpl implements EntityService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ BaseNodeRepository nodeRepository;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> createEntity(List<CreateEntityVO> createEntityList) {
|
|
|
+
|
|
|
+ //封装entityVO
|
|
|
+ List<EntityVO> entityList = new ArrayList<>();
|
|
|
+ for (CreateEntityVO entityVO : createEntityList) {
|
|
|
+ EntityVO entity = new EntityVO();
|
|
|
+ HashMap<String, Object> property = new HashMap<>();
|
|
|
+ entity.setLabel(entityVO.getLabel());
|
|
|
+ property.put("name", entityVO.getName());
|
|
|
+ entity.setProperty(property);
|
|
|
+ entityList.add(entity);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Map<String, Object>> createdEntityList = entityList.stream()
|
|
|
+ .map(entityVO -> {
|
|
|
+ // 新增单个实体,只添加名字属性和标签
|
|
|
+ return nodeRepository.createNode(entityVO.getLabel(), entityVO.getProperty());
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ return createdEntityList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean deleteEntity(List<Long> ids) {
|
|
|
+
|
|
|
+ //查询是否存在删除实体
|
|
|
+ boolean allExist = ids.stream()
|
|
|
+ .allMatch(id -> nodeRepository.findNodeById(id) != null);
|
|
|
+ if (!allExist) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除单个实体
|
|
|
+ ids.forEach(id -> nodeRepository.deleteNode(id));
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> updateEntityName(List<UpdateEntityVO> updateEntityList) {
|
|
|
+
|
|
|
+ //封装entityVO
|
|
|
+ List<EntityVO> entityList = new ArrayList<>();
|
|
|
+ for (UpdateEntityVO entityVO : updateEntityList) {
|
|
|
+ EntityVO entity = new EntityVO();
|
|
|
+ HashMap<String, Object> property = new HashMap<>();
|
|
|
+ entity.setNodeId(entityVO.getNoteId());
|
|
|
+ property.put("name", entityVO.getName());
|
|
|
+ entity.setProperty(property);
|
|
|
+ entityList.add(entity);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Map<String, Object>> updatedEntityList = entityList.stream()
|
|
|
+ //更新单个实体
|
|
|
+ .map(entityVO -> nodeRepository.updateNode(entityVO.getNodeId(), entityVO.getProperty().get("name").toString()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ return updatedEntityList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> findEntityListByName(String label, String name) {
|
|
|
+
|
|
|
+ List<Map<String, Object>> entityListByName = nodeRepository.findNodeListByName(label, name);
|
|
|
+ return entityListByName;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object>findEntityById(Long id) {
|
|
|
+
|
|
|
+ Map<String, Object> entityById = nodeRepository.findNodeById(id);
|
|
|
+ return entityById;
|
|
|
+ }
|
|
|
+}
|