This commit is contained in:
2024-11-13 16:07:28 +01:00
parent c56e8a4968
commit 017548c0a3
2 changed files with 27 additions and 0 deletions
@@ -37,4 +37,7 @@ public interface TransactionRepository extends JpaRepository<Transaction, Long>
@Query("select transaction from Transaction transaction left join fetch transaction.event where transaction.id =:id")
Optional<Transaction> findOneWithToOneRelationships(@Param("id") Long id);
@Query("select transaction from Transaction transaction left join fetch transaction.transactionItem")
List<Transaction> findAllByEventId(Long eventId);
}
@@ -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<Event> settle(@Valid Event event) {
Long eventId = event.getId();
List<Transaction> 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());
}
}