[EDIT] userIdによる収支検索、期間設定機能がある検索、収入・支出の検索機能のサービス段を作成しました。
This commit is contained in:
@@ -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<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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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<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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user