From 6847f225c4f64e9f0a2b945fb2d12bb953855ea2 Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 11:01:39 +0900 Subject: [PATCH] =?UTF-8?q?[EDIT]=20userId=E3=81=AB=E3=82=88=E3=82=8B?= =?UTF-8?q?=E5=8F=8E=E6=94=AF=E6=A4=9C=E7=B4=A2=E3=80=81=E6=9C=9F=E9=96=93?= =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E6=A9=9F=E8=83=BD=E3=81=8C=E3=81=82=E3=82=8B?= =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=80=81=E5=8F=8E=E5=85=A5=E3=83=BB=E6=94=AF?= =?UTF-8?q?=E5=87=BA=E3=81=AE=E6=A4=9C=E7=B4=A2=E6=A9=9F=E8=83=BD=E3=81=AE?= =?UTF-8?q?=E3=82=B5=E3=83=BC=E3=83=93=E3=82=B9=E6=AE=B5=E3=82=92=E4=BD=9C?= =?UTF-8?q?=E6=88=90=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/service/TransactionService.java | 14 +++++ .../service/impl/TransactionServiceImpl.java | 52 ++++++++++++++++++- 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/app/domain/service/TransactionService.java b/src/main/java/com/example/demo/app/domain/service/TransactionService.java index bcdf8ff..fe437f9 100644 --- a/src/main/java/com/example/demo/app/domain/service/TransactionService.java +++ b/src/main/java/com/example/demo/app/domain/service/TransactionService.java @@ -1,5 +1,19 @@ package com.example.demo.app.domain.service; +import java.time.LocalDate; +import java.util.List; +import java.util.Map; + +import com.example.demo.app.domain.model.TransactionModel; + public interface TransactionService { + public Map> findAllByDate(LocalDate startDate, LocalDate endDate, Long userId); + + public TransactionModel findByUserId(TransactionModel transactionModel); + + public int findTotalIncome(LocalDate startDate, LocalDate endDate, Long userId); + + public int findTotalexpense(LocalDate startDate, LocalDate endDate, Long userId); + } diff --git a/src/main/java/com/example/demo/app/domain/service/impl/TransactionServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/TransactionServiceImpl.java index 3484d9e..a4d1712 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/TransactionServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/TransactionServiceImpl.java @@ -1,10 +1,60 @@ package com.example.demo.app.domain.service.impl; +import java.time.LocalDate; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + import org.springframework.stereotype.Service; +import com.example.demo.app.domain.model.TransactionModel; import com.example.demo.app.domain.service.TransactionService; +import com.example.demo.app.infra.entity.TransactionEntity; +import com.example.demo.app.infra.repository.TransactionRepository; + +import lombok.RequiredArgsConstructor; @Service -public class TransactionServiceImpl implements TransactionService{ +@RequiredArgsConstructor +public class TransactionServiceImpl implements TransactionService { + + private final TransactionRepository transactionRepository; + + public Map> findAllByDate(LocalDate startDate, LocalDate endDate, Long userId) { + + List transactionEntityList = transactionRepository.findAllByDateAndUserId(startDate, endDate, + userId); + + List transactionModelList = TransactionModel + .convertFrom(transactionEntityList); + + Map> transactionModelMap = transactionModelList.stream() + .collect(Collectors.groupingBy(TransactionModel::getTransactionDate)); + + return transactionModelMap; + + } + + public int findTotalIncome(LocalDate startDate, LocalDate endDate, Long userId) { + + return transactionRepository.findTotalIncome(startDate, endDate, userId); + + } + public int findTotalexpense(LocalDate startDate, LocalDate endDate, Long userId) { + + return transactionRepository.findTotalIncome(startDate, endDate, userId); + + } + + public TransactionModel findByUserId(TransactionModel transactionModel) { + + TransactionEntity transactionEntity = transactionRepository.findByUserId(transactionModel.getUserId()); + + if (transactionEntity == null) { + return null; + } + + return TransactionModel.convertFrom(transactionEntity); + } }