| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package com.lingyue.graph.service;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.lingyue.graph.entity.Edge;
- import com.lingyue.graph.mapper.EdgeMapper;
- import lombok.RequiredArgsConstructor;
- import org.springframework.stereotype.Service;
- import java.time.LocalDateTime;
- import java.util.List;
- @Service
- @RequiredArgsConstructor
- public class EdgeService extends ServiceImpl<EdgeMapper, Edge> {
- public Long createEdge(String edgeType, Long fromNodeId, Long toNodeId) {
- return createEdge(edgeType, fromNodeId, toNodeId, 0);
- }
- public Long createEdge(String edgeType, Long fromNodeId, Long toNodeId, int sortOrder) {
- Edge existing = baseMapper.selectByTypeAndNodes(edgeType, fromNodeId, toNodeId);
- if (existing != null) {
- return existing.getId();
- }
- Edge edge = new Edge();
- edge.setEdgeType(edgeType);
- edge.setFromNodeId(fromNodeId);
- edge.setToNodeId(toNodeId);
- edge.setSortOrder(sortOrder);
- edge.setCreatedAt(LocalDateTime.now());
- baseMapper.insert(edge);
- return edge.getId();
- }
- public List<Edge> listByTypeAndFrom(String edgeType, Long fromNodeId) {
- return baseMapper.selectByTypeAndFrom(edgeType, fromNodeId);
- }
- public List<Edge> listByTypeAndTo(String edgeType, Long toNodeId) {
- return baseMapper.selectByTypeAndTo(edgeType, toNodeId);
- }
- public Edge getByTypeAndNodes(String edgeType, Long fromNodeId, Long toNodeId) {
- return baseMapper.selectByTypeAndNodes(edgeType, fromNodeId, toNodeId);
- }
- public void deleteByTypeAndNodes(String edgeType, Long fromNodeId, Long toNodeId) {
- baseMapper.deleteByTypeAndNodes(edgeType, fromNodeId, toNodeId);
- }
- public int countByTypeAndFrom(String edgeType, Long fromNodeId) {
- return baseMapper.countByTypeAndFrom(edgeType, fromNodeId);
- }
- public void deleteByTypeAndFrom(String edgeType, Long fromNodeId) {
- baseMapper.deleteByTypeAndFrom(edgeType, fromNodeId);
- }
- }
|