diff --git a/src/main/java/com/sasiedzi/event/repository/TransactionRepository.java b/src/main/java/com/sasiedzi/event/repository/TransactionRepository.java index a0d9d5f..c437a66 100644 --- a/src/main/java/com/sasiedzi/event/repository/TransactionRepository.java +++ b/src/main/java/com/sasiedzi/event/repository/TransactionRepository.java @@ -37,4 +37,7 @@ public interface TransactionRepository extends JpaRepository @Query("select transaction from Transaction transaction left join fetch transaction.event where transaction.id =:id") Optional findOneWithToOneRelationships(@Param("id") Long id); + + @Query("select transaction from Transaction transaction left join fetch transaction.transactionItem") + List findAllByEventId(Long eventId); } diff --git a/src/main/java/com/sasiedzi/event/service/EventService.java b/src/main/java/com/sasiedzi/event/service/EventService.java index fd72750..002744d 100644 --- a/src/main/java/com/sasiedzi/event/service/EventService.java +++ b/src/main/java/com/sasiedzi/event/service/EventService.java @@ -1,12 +1,19 @@ package com.sasiedzi.event.service; import com.sasiedzi.event.domain.Event; +import com.sasiedzi.event.domain.Transaction; +import com.sasiedzi.event.domain.enumeration.TransactionType; import com.sasiedzi.event.repository.EventRepository; +import com.sasiedzi.event.repository.TransactionRepository; +import com.sasiedzi.event.web.rest.TransactionResource; import jakarta.validation.Valid; +import java.time.LocalDate; +import java.util.Date; import java.util.List; import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -113,7 +120,24 @@ public class EventService { eventRepository.deleteById(id); } + @Autowired + TransactionRepository transactionRepository; + public Optional settle(@Valid Event event) { + Long eventId = event.getId(); + List allTransactions = transactionRepository.findAllByEventId(eventId); + + Transaction transaction; + if (allTransactions.isEmpty()) { + transaction = new Transaction(); + transaction.setEvent(event); + transaction.setType(TransactionType.MATCH); + transaction.setDate(LocalDate.now()); + transactionRepository.save(transaction); + } else { + transaction = allTransactions.get(0); + } + return eventRepository.findById(event.getId()); } }