From b49c9156a1452819dd8b2a016ec35806aee23307 Mon Sep 17 00:00:00 2001 From: s-choi Date: Fri, 18 Sep 2026 13:58:12 +0900 Subject: [PATCH] =?UTF-8?q?[FIX]=20=E5=85=A8=E4=BD=93=E7=9A=84=E3=81=AA?= =?UTF-8?q?=E6=95=B4=E5=90=88=E6=80=A7=E3=82=92=E7=A2=BA=E8=AA=8D=E3=81=97?= =?UTF-8?q?=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 --- .../controller/TransactionController.java | 175 ++++++++++++------ 1 file changed, 119 insertions(+), 56 deletions(-) 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 053cbd5..526f98b 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 @@ -2,6 +2,7 @@ package com.example.demo.app.presentation.controller; import java.time.LocalDate; import java.time.YearMonth; +import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -65,9 +66,7 @@ public class TransactionController { }).collect(Collectors.toList()); transactionFormMap.put(date, transactionFormList); }); - - - + model.addAttribute("transactionFormMap", transactionFormMap); return "transaction_list"; @@ -78,21 +77,45 @@ public class TransactionController { public String findOne(@RequestParam(required = false) LocalDate todayDates, Model model, HttpSession session) { LocalDate todayDate = (todayDates == null) ? LocalDate.now() : todayDates; - - + LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); List transactionFormList = transactionService .findByUserIdAndDate(todayDate, loginUser.getUserId()).stream() .map(transaction -> { - TransactionForm transactionForm = TransactionForm.convertFrom( - transaction, - CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) - .getCategoryName(), - transactionService.findTotalExpense(todayDate, todayDate, loginUser.getUserId()), - transactionService.findTotalIncome(todayDate, todayDate, loginUser.getUserId()), - CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) - .getTransactionType()); + + int type = CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) + .getTransactionType(); + + TransactionForm transactionForm; + if (type == 1) { + + transactionForm = TransactionForm.convertFrom( + transaction, + CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) + .getCategoryName(), + 0, + transactionService.findMoneyRecord(transaction.getTransactionId()), + type); + + } else if (type == 0) { + transactionForm = TransactionForm.convertFrom( + transaction, + CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) + .getCategoryName(), + transactionService.findMoneyRecord(transaction.getTransactionId()), + 0, + type); + } else { + transactionForm = TransactionForm.convertFrom( + transaction, + CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) + .getCategoryName(), + 0, + 0, + type); + } + return transactionForm; }).collect(Collectors.toList()); @@ -103,102 +126,142 @@ public class TransactionController { } @GetMapping("/transaction/create") - public String createOneGet(@ModelAttribute TransactionForm transactionForm, @RequestParam LocalDate today, Model model) { + public String createOneGet(@RequestParam(defaultValue = "") LocalDate today, + Model model) { List categoryFormList = CategoryForm.convertFrom(categoryService.findAll()); - + + TransactionForm transactionForm = new TransactionForm(); + transactionForm.setTransactionDate(today); + + System.out.println(transactionForm.getCategoryName() + " " + transactionForm.getAmount()); + + model.addAttribute("transactionForm", transactionForm); + model.addAttribute("categoryFormList", categoryFormList); - model.addAttribute("today", today); - + + model.addAttribute("today", today.format(DateTimeFormatter.ISO_LOCAL_DATE)); + return "transaction_create"; } @PostMapping("/transaction/create") - public String createOnePost(@ModelAttribute TransactionForm transactionForm, @RequestParam LocalDate today, Model model, HttpSession session) { + 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 "redirect:/transaction/detail?todayDates=" + today; + return "redirect:/transaction/detail?todayDates=" + transactionForm.getTransactionDate(); } @GetMapping("/transaction/update") - public String updateOneGet(@ModelAttribute TransactionForm transactionForm) { + public String updateOneGet(@RequestParam Long transactionId, @RequestParam(defaultValue = "") LocalDate today, + Model model) { + + if (today.equals(null)) { + today = LocalDate.now(); + } + + List categoryFormList = CategoryForm.convertFrom(categoryService.findAll()); + + TransactionForm transactionForm = TransactionForm.convertFrom( + transactionService.findByTransactionId(transactionId), + CategoryForm.convertFrom(categoryService.findByTransactionId(transactionId)).getCategoryName(), + transactionService.findMoneyRecord(transactionId), + transactionService.findMoneyRecord(transactionId), + CategoryForm.convertFrom(categoryService.findByTransactionId(transactionId)).getTransactionType()); + + System.out.println("category: " + transactionForm.getCategoryId() + "金額: " + transactionForm.getAmount()); + + + model.addAttribute("transactionId", transactionId); + + model.addAttribute("transactionForm", transactionForm); + + model.addAttribute("categoryFormList", categoryFormList); + + model.addAttribute("today", today); + + return "transaction_update"; - return ""; } @PostMapping("/transaction/update") - public String updateOnePost(@ModelAttribute TransactionForm transactionForm, Model model) { + public String updateOnePost(@RequestParam Long transactionId, @ModelAttribute TransactionForm transactionForm, @RequestParam LocalDate today, Model model, + HttpSession session) { + LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + + transactionForm.setUserId(loginUser.getUserId()); + transactionForm.setTransactionId(transactionId); + if (transactionService.updateTransaction(TransactionForm.convertTo(transactionForm)) != 0) { return "error"; } - return ""; + return "redirect:/transaction/detail?todayDates=" + transactionForm.getTransactionDate(); } @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) { - + 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; + YearMonth yearMonth = YearMonth.of(year, month); - model.addAttribute("year", year); - model.addAttribute("month", month); - model.addAttribute("day", today.getDayOfMonth()); + int lastDay = yearMonth.lengthOfMonth(); - model.addAttribute("lastDay", lastDay); - model.addAttribute("firstDayOfWeek", firstDayOfWeek); + int firstDayOfWeek = yearMonth.atDay(1).getDayOfWeek().getValue() % 7; - LocalDate startDate = LocalDate.now().withDayOfMonth(1); + 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()); - + + int totalExpense = transactionService.findTotalExpense(startDate, endDate, loginUser.getUserId()); + model.addAttribute("totalIncome", totalIncome); model.addAttribute("totalExpense", totalExpense); - - - return "menu"; - } - - + + return "menu"; + } + }