diff --git a/src/main/java/com/example/demo/app/presentation/controller/TransactionController.java b/src/main/java/com/example/demo/app/presentation/controller/TransactionController.java index fed0ca7..053cbd5 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/TransactionController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/TransactionController.java @@ -1,6 +1,7 @@ package com.example.demo.app.presentation.controller; import java.time.LocalDate; +import java.time.YearMonth; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -19,6 +20,8 @@ import com.example.demo.app.domain.model.LoginModel; import com.example.demo.app.domain.service.CategoryService; import com.example.demo.app.domain.service.TransactionService; import com.example.demo.app.presentation.form.CategoryForm; +import com.example.demo.app.presentation.form.Expense; +import com.example.demo.app.presentation.form.Income; import com.example.demo.app.presentation.form.TransactionForm; import lombok.RequiredArgsConstructor; @@ -29,8 +32,8 @@ public class TransactionController { private final TransactionService transactionService; private final CategoryService categoryService; - // 一覧画面 + // 一覧画面 @GetMapping("/transaction/list") public String transactionList(@RequestParam(required = false) LocalDate startDates, @RequestParam(required = false) LocalDate endDates, Model model, @@ -47,19 +50,24 @@ public class TransactionController { transactionService.findAllByDate(startDate, endDate, loginUser.getUserId()).forEach((date, list) -> { List transactionFormList = list.stream().map(transaction -> { + System.out.println(transaction.getTransactionDate()); TransactionForm transactionForm = TransactionForm.convertFrom( transaction, CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) .getCategoryName(), - transactionService.findTotalexpense(startDate, endDate, loginUser.getUserId()), + transactionService.findTotalExpense(startDate, endDate, loginUser.getUserId()), transactionService.findTotalIncome(startDate, endDate, loginUser.getUserId()), CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) .getTransactionType()); + System.out.println("startDate = " + startDate); + System.out.println("endDate = " + endDate); return transactionForm; }).collect(Collectors.toList()); transactionFormMap.put(date, transactionFormList); }); - + + + model.addAttribute("transactionFormMap", transactionFormMap); return "transaction_list"; @@ -81,32 +89,40 @@ public class TransactionController { transaction, CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) .getCategoryName(), - transactionService.findTotalexpense(todayDate, todayDate, loginUser.getUserId()), + transactionService.findTotalExpense(todayDate, todayDate, loginUser.getUserId()), transactionService.findTotalIncome(todayDate, todayDate, loginUser.getUserId()), CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) .getTransactionType()); return transactionForm; }).collect(Collectors.toList()); + model.addAttribute("today", todayDate); model.addAttribute("transactionFormList", transactionFormList); - return ""; + return "transaction_detail"; } @GetMapping("/transaction/create") - public String createOneGet(@ModelAttribute TransactionForm transactionForm) { + public String createOneGet(@ModelAttribute TransactionForm transactionForm, @RequestParam LocalDate today, Model model) { - return ""; + List categoryFormList = CategoryForm.convertFrom(categoryService.findAll()); + + model.addAttribute("categoryFormList", categoryFormList); + model.addAttribute("today", today); + + return "transaction_create"; } @PostMapping("/transaction/create") - public String createOnePost(@ModelAttribute TransactionForm transactionForm, Model model) { - + public String createOnePost(@ModelAttribute TransactionForm transactionForm, @RequestParam LocalDate today, Model model, HttpSession session) { + LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + transactionForm.setUserId(loginUser.getUserId()); + transactionForm.setTransactionDate(today); if (transactionService.createTransaction(TransactionForm.convertTo(transactionForm)) != 0) { return "error"; } - return ""; + return "redirect:/transaction/detail?todayDates=" + today; } @@ -127,4 +143,62 @@ public class TransactionController { } + @PostMapping("/transaction/delete") + public String deleteOne(@RequestParam Long transactionId, @RequestParam LocalDate today) { + + transactionService.deleteTransaction(transactionId); + return "redirect:/transaction/detail?todayDates=" + today; + } + + @GetMapping("/menu") + public String menu(HttpSession session, Model model, @RequestParam(required = false, defaultValue = "0") String years, @RequestParam(required = false, defaultValue = "0") String months) { + + LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + + LocalDate today = LocalDate.now(); + + int year = (years.equals("0")) ? today.getYear() : Integer.parseInt(years); + int month = (months.equals("0")) ? today.getMonthValue() : Integer.parseInt(months); + + System.out.println("year : " + year + "month : " + month); + + YearMonth yearMonth = YearMonth.of(year, month); + + int lastDay = yearMonth.lengthOfMonth(); + + int firstDayOfWeek = + yearMonth.atDay(1).getDayOfWeek().getValue() % 7; + + model.addAttribute("year", year); + model.addAttribute("month", month); + model.addAttribute("day", today.getDayOfMonth()); + + model.addAttribute("lastDay", lastDay); + model.addAttribute("firstDayOfWeek", firstDayOfWeek); + + LocalDate startDate = LocalDate.now().withDayOfMonth(1); + + LocalDate endDate = LocalDate.now().withDayOfMonth(LocalDate.now().lengthOfMonth()); + + + List incomeList = transactionService.findTotalIncomeList(startDate, endDate, loginUser.getUserId()); + List expenseList = transactionService.findTotalExpenseList(startDate, endDate, loginUser.getUserId()); + + model.addAttribute("incomeList", incomeList); + + model.addAttribute("expenseList", expenseList); + + + int totalIncome = transactionService.findTotalIncome(startDate, endDate, loginUser.getUserId()); + + int totalExpense= transactionService.findTotalExpense(startDate, endDate, loginUser.getUserId()); + + model.addAttribute("totalIncome", totalIncome); + model.addAttribute("totalExpense", totalExpense); + + + return "menu"; + } + + }