[EDIT] userIdによる収支検索、期間設定機能がある検索、収入・支出の検索機能のサービス段を作成しました。

This commit is contained in:
s-choi
2026-09-17 11:01:39 +09:00
parent 036a495bc7
commit 6847f225c4
2 changed files with 65 additions and 1 deletions

View File

@@ -1,5 +1,19 @@
package com.example.demo.app.domain.service; 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 interface TransactionService {
public Map<LocalDate, List<TransactionModel>> 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);
} }

View File

@@ -1,10 +1,60 @@
package com.example.demo.app.domain.service.impl; 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 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.domain.service.TransactionService;
import com.example.demo.app.infra.entity.TransactionEntity;
import com.example.demo.app.infra.repository.TransactionRepository;
import lombok.RequiredArgsConstructor;
@Service @Service
public class TransactionServiceImpl implements TransactionService{ @RequiredArgsConstructor
public class TransactionServiceImpl implements TransactionService {
private final TransactionRepository transactionRepository;
public Map<LocalDate, List<TransactionModel>> findAllByDate(LocalDate startDate, LocalDate endDate, Long userId) {
List<TransactionEntity> transactionEntityList = transactionRepository.findAllByDateAndUserId(startDate, endDate,
userId);
List<TransactionModel> transactionModelList = TransactionModel
.convertFrom(transactionEntityList);
Map<LocalDate, List<TransactionModel>> 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);
}
} }