From c27904522818e5e30756d983a2375efda3253690 Mon Sep 17 00:00:00 2001 From: s-morimoto Date: Thu, 17 Sep 2026 13:04:34 +0900 Subject: [PATCH 01/14] =?UTF-8?q?[ADD]LoginModel=E3=81=AE=E4=BD=9C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/app/domain/model/LoginModel.java | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/main/java/com/example/demo/app/domain/model/LoginModel.java diff --git a/src/main/java/com/example/demo/app/domain/model/LoginModel.java b/src/main/java/com/example/demo/app/domain/model/LoginModel.java new file mode 100644 index 0000000..f9c2e93 --- /dev/null +++ b/src/main/java/com/example/demo/app/domain/model/LoginModel.java @@ -0,0 +1,10 @@ +package com.example.demo.app.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class LoginModel { + private Long userId; +} From d31d6aaf2da1cf29d0597ae5b9939f6f998058c8 Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 13:44:33 +0900 Subject: [PATCH 02/14] =?UTF-8?q?[EDIT]=20=E5=90=8D=E5=89=8D=E3=81=A7?= =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=81=A7=E3=81=8D=E3=82=8B=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/app/infra/repository/CategoryRepository.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/example/demo/app/infra/repository/CategoryRepository.java b/src/main/java/com/example/demo/app/infra/repository/CategoryRepository.java index 0f8ef9c..79b439b 100644 --- a/src/main/java/com/example/demo/app/infra/repository/CategoryRepository.java +++ b/src/main/java/com/example/demo/app/infra/repository/CategoryRepository.java @@ -1,9 +1,15 @@ package com.example.demo.app.infra.repository; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import com.example.demo.app.infra.entity.CategoryEntity; public interface CategoryRepository extends JpaRepository { + + @Query("select c from CategoryEntity c where c.categoryName = :categoryName") + public CategoryEntity findByCategoryName(@Param("categoryName") String categoryName); + } From be286201f54a7923c02b3f0eccc7332a6f115104 Mon Sep 17 00:00:00 2001 From: s-morimoto Date: Thu, 17 Sep 2026 13:44:47 +0900 Subject: [PATCH 03/14] =?UTF-8?q?[ADD]=E6=96=B0=E8=A6=8F=E4=BC=9A=E5=93=A1?= =?UTF-8?q?=E7=99=BB=E9=8C=B2=E3=81=A8=E3=81=9D=E3=81=AE=E7=A2=BA=E8=AA=8D?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E3=81=AE=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/templates/user_register.html | 136 ++++++++++++++++++ .../templates/user_register_confirm.html | 78 ++++++++++ 2 files changed, 214 insertions(+) create mode 100644 src/main/resources/templates/user_register.html create mode 100644 src/main/resources/templates/user_register_confirm.html diff --git a/src/main/resources/templates/user_register.html b/src/main/resources/templates/user_register.html new file mode 100644 index 0000000..18d31ac --- /dev/null +++ b/src/main/resources/templates/user_register.html @@ -0,0 +1,136 @@ + + + + +新規会員登録 + + +
+ +
+

新規会員登録

+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ +
+ +
+ +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/user_register_confirm.html b/src/main/resources/templates/user_register_confirm.html new file mode 100644 index 0000000..aad56dd --- /dev/null +++ b/src/main/resources/templates/user_register_confirm.html @@ -0,0 +1,78 @@ + + + + +新規会員登録確認 + + +
+ +
+

新規会員登録確認

+ +
+

氏名

+

+
+ +
+

メールアドレス

+

+
+ +
+

生年月日

+

+
+ +
+

パスワード

+

********

+
+ +
+

秘密の質問

+

+
+ +
+

秘密の質問の回答

+

+
+ +
+

貯蓄金

+

+
+ +
+

年収

+

+
+ +
+

月別使用可能額

+

+
+ +
+

目標

+

+
+ +
+

コース

+

+
+ +
+
+ +
+
+
+ +
+
+ + \ No newline at end of file From 5ab8109504731943cddfecda2618a6066b0cd56f Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 13:44:57 +0900 Subject: [PATCH 04/14] =?UTF-8?q?[EDIT]=20=E5=90=8D=E5=89=8D=E3=81=A7?= =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=81=A7=E3=81=8D=E3=82=8B=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/domain/service/CategoryService.java | 2 ++ .../service/impl/CategoryServiceImpl.java | 32 +++++++++++++------ 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/example/demo/app/domain/service/CategoryService.java b/src/main/java/com/example/demo/app/domain/service/CategoryService.java index ff0cab4..ddea344 100644 --- a/src/main/java/com/example/demo/app/domain/service/CategoryService.java +++ b/src/main/java/com/example/demo/app/domain/service/CategoryService.java @@ -9,4 +9,6 @@ public interface CategoryService { public List findAll(); public CategoryModel findOne(Long categoryId); + + public CategoryModel findOneByCategoryName(String categoryName); } diff --git a/src/main/java/com/example/demo/app/domain/service/impl/CategoryServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/CategoryServiceImpl.java index 4dab58c..6e59cdb 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/CategoryServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/CategoryServiceImpl.java @@ -14,26 +14,38 @@ import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor -public class CategoryServiceImpl implements CategoryService{ +public class CategoryServiceImpl implements CategoryService { private final CategoryRepository categoryRepository; - + public List findAll() { - + return CategoryModel.convertFrom(categoryRepository.findAll()); - + } - + public CategoryModel findOne(Long categoryId) { - + Optional optionalCategoryModel = categoryRepository.findById(categoryId); - + if (optionalCategoryModel.isEmpty()) { return null; } - + return CategoryModel.convertFrom(optionalCategoryModel.get()); - + } - + + public CategoryModel findOneByCategoryName(String categoryName) { + + CategoryEntity categoryModel = categoryRepository.findByCategoryName(categoryName); + + if (categoryModel == null) { + return null; + } + + return CategoryModel.convertFrom(categoryModel); + + } + } From 8763f88de4784398b9932cec6873dc8553b562f2 Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 13:47:01 +0900 Subject: [PATCH 05/14] =?UTF-8?q?[EDIT]=20=E5=8F=8E=E6=94=AF=E3=81=AE?= =?UTF-8?q?=E7=99=BB=E9=8C=B2=E3=83=BB=E4=BF=AE=E6=AD=A3=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=80=82=E6=97=A5=E4=BB=98=E3=81=AEDefault=E5=80=A4=E3=82=92?= =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=81=97=E3=80=81Session=20Attribute?= =?UTF-8?q?=E3=83=BB=E3=82=AA=E3=83=96=E3=82=B8=E3=82=A7=E3=82=AF=E3=83=88?= =?UTF-8?q?=E3=81=AE=E5=9E=8B=E3=82=92=E4=BF=AE=E6=AD=A3=E3=81=97=E3=81=BE?= =?UTF-8?q?=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 | 4 + .../service/impl/TransactionServiceImpl.java | 73 +++++++++++++- .../controller/TransactionController.java | 95 ++++++++++++++----- 3 files changed, 143 insertions(+), 29 deletions(-) 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 86b85d5..84edc52 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 @@ -16,4 +16,8 @@ public interface TransactionService { public int findTotalexpense(LocalDate startDate, LocalDate endDate, Long userId); + public int createTransaction(TransactionModel transactionModel); + + public int updateTransaction(TransactionModel transactionModel); + } 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 771d267..d33dc25 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 @@ -3,14 +3,19 @@ package com.example.demo.app.domain.service.impl; import java.time.LocalDate; import java.util.List; import java.util.Map; +import java.util.Optional; 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.CategoryEntity; import com.example.demo.app.infra.entity.TransactionEntity; +import com.example.demo.app.infra.entity.UserEntity; +import com.example.demo.app.infra.repository.CategoryRepository; import com.example.demo.app.infra.repository.TransactionRepository; +import com.example.demo.app.infra.repository.UserRepository; import lombok.RequiredArgsConstructor; @@ -19,6 +24,8 @@ import lombok.RequiredArgsConstructor; public class TransactionServiceImpl implements TransactionService { private final TransactionRepository transactionRepository; + private final UserRepository userRepository; + private final CategoryRepository categoryRepository; public Map> findAllByDate(LocalDate startDate, LocalDate endDate, Long userId) { @@ -34,16 +41,17 @@ public class TransactionServiceImpl implements TransactionService { 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 List findByUserIdAndDate(LocalDate todayDate, Long userId) { @@ -52,4 +60,59 @@ public class TransactionServiceImpl implements TransactionService { } + public int createTransaction(TransactionModel transactionModel) { + + Optional userEntityOptional = userRepository.findById(transactionModel.getUserId()); + + if (userEntityOptional.isEmpty()) { + return -1; + } + + Optional categoryEntityOptional = categoryRepository.findById(transactionModel.getCategoryId()); + if (categoryEntityOptional.isEmpty()) { + return -1; + } + + TransactionEntity transactionEntity = TransactionModel.convertTo( + transactionModel, + userEntityOptional.get(), + categoryEntityOptional.get()); + if (transactionRepository.save(transactionEntity) != null) { + return 0; + + } else { + return -1; + } + + } + + public int updateTransaction(TransactionModel transactionModel) { + + if (!transactionRepository.existsById(transactionModel.getTransactionId())) { + return -1; + } + + Optional userEntityOptional = userRepository.findById(transactionModel.getUserId()); + + if (userEntityOptional.isEmpty()) { + return -1; + } + + Optional categoryEntityOptional = categoryRepository.findById(transactionModel.getCategoryId()); + if (categoryEntityOptional.isEmpty()) { + return -1; + } + + TransactionEntity transactionEntity = TransactionModel.convertTo( + transactionModel, + userEntityOptional.get(), + categoryEntityOptional.get()); + if (transactionRepository.save(transactionEntity) != null) { + return 0; + + } else { + return -1; + } + + } } 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 5e51565..1ccc329 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 @@ -11,8 +11,11 @@ import jakarta.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; +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; @@ -26,27 +29,32 @@ public class TransactionController { private final TransactionService transactionService; private final CategoryService categoryService; - // 一覧画面 @GetMapping("/transaction/list") - public String transactionList(@RequestParam LocalDate startDate, @RequestParam LocalDate endDate, Model model, + public String transactionList(@RequestParam(required = false) LocalDate startDates, + @RequestParam(required = false) LocalDate endDates, Model model, HttpSession session) { - LoginUser loginUser = (LoginUser) session.getAttribute("loginUser"); + LocalDate startDate = (startDates == null) ? LocalDate.now().withDayOfMonth(1) : startDates; + + LocalDate endDate = (endDates == null) ? LocalDate.now().withDayOfMonth(LocalDate.now().lengthOfMonth()) + : endDates; + + LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); Map> transactionFormMap = new HashMap<>(); - - - transactionService.findAll(startDate, endDate, loginUser.getUserId).forEach((date, list) -> { + + transactionService.findAllByDate(startDate, endDate, loginUser.getUserId()).forEach((date, list) -> { List transactionFormList = list.stream().map(transaction -> { TransactionForm transactionForm = TransactionForm.convertFrom( transaction, - CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())).getCategoryName(), - transactionService.findTotalexpense(startDate, endDate, loginUser.getUserId), - transactionService.findTotalIncome(startDate, endDate, loginUser.getUserId), - CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())).getTransactionType() - ); + CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) + .getCategoryName(), + transactionService.findTotalexpense(startDate, endDate, loginUser.getUserId()), + transactionService.findTotalIncome(startDate, endDate, loginUser.getUserId()), + CategoryForm.convertFrom(categoryService.findOne(transaction.getCategoryId())) + .getTransactionType()); return transactionForm; }).collect(Collectors.toList()); transactionFormMap.put(date, transactionFormList); @@ -59,25 +67,64 @@ public class TransactionController { // 詳細画面 @GetMapping() - public String findOne(@RequestParam LocalDate todayDate, Model model, HttpSession session) { + public String findOne(@RequestParam(required = false) LocalDate todayDates, Model model, HttpSession session) { - LoginUser loginUser = (LoginUser) session.getAttribute("loginUser"); - - List transactionFormList = transactionService.findByUserIdAndDate(todayDate, ((LoginUser)session.getAttribute("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() - ); - return transactionForm; - }).collect(Collectors.toList()); + 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()); + return transactionForm; + }).collect(Collectors.toList()); + model.addAttribute("transactionFormList", transactionFormList); return ""; } + @GetMapping("") + public String createOneGet(@ModelAttribute TransactionForm transactionForm) { + + return ""; + } + + @PostMapping() + public String createOnePost(@ModelAttribute TransactionForm transactionForm, Model model) { + + if (transactionService.createTransaction(TransactionForm.convertTo(transactionForm)) != 0) { + return "error"; + } + + return ""; + + } + + @GetMapping("") + public String updateOneGet(@ModelAttribute TransactionForm transactionForm) { + + return ""; + } + + @PostMapping() + public String updateOnePost(@ModelAttribute TransactionForm transactionForm, Model model) { + + if (transactionService.updateTransaction(TransactionForm.convertTo(transactionForm)) != 0) { + return "error"; + } + + return ""; + + } + } From 4f49c24c9994428114d15fce72ae295393a06d24 Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 13:47:39 +0900 Subject: [PATCH 06/14] =?UTF-8?q?[EDIT]=20Model=E3=81=8B=E3=82=89Entity?= =?UTF-8?q?=E3=81=B8=E5=A4=89=E6=8F=9B=E3=81=99=E3=82=8B=E3=83=A1=E3=82=BD?= =?UTF-8?q?=E3=83=83=E3=83=89=E3=82=92=E4=BD=9C=E6=88=90=E3=81=97=E3=81=BE?= =?UTF-8?q?=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/app/domain/model/TransactionModel.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/com/example/demo/app/domain/model/TransactionModel.java b/src/main/java/com/example/demo/app/domain/model/TransactionModel.java index dc01b88..d82f736 100644 --- a/src/main/java/com/example/demo/app/domain/model/TransactionModel.java +++ b/src/main/java/com/example/demo/app/domain/model/TransactionModel.java @@ -3,7 +3,9 @@ package com.example.demo.app.domain.model; import java.time.LocalDate; import java.util.List; +import com.example.demo.app.infra.entity.CategoryEntity; import com.example.demo.app.infra.entity.TransactionEntity; +import com.example.demo.app.infra.entity.UserEntity; import lombok.AllArgsConstructor; import lombok.Getter; @@ -35,4 +37,13 @@ public class TransactionModel { return transactionEntityList.stream().map(TransactionModel::convertFrom).toList(); } + public static TransactionEntity convertTo(TransactionModel transactionModel, UserEntity userEntity, CategoryEntity categoryEntity) { + return new TransactionEntity( + transactionModel.getTransactionId(), + userEntity, + categoryEntity, + transactionModel.getAmount(), + transactionModel.getTransactionDate()); + } + } \ No newline at end of file From 19989111ec3c4db10ed2def73253dadaef82336d Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 13:48:08 +0900 Subject: [PATCH 07/14] =?UTF-8?q?[EDIT]=20=E6=94=B9=E8=A1=8C=E3=83=BB?= =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E4=BD=8D=E7=BD=AE=E3=82=92=E8=AA=BF?= =?UTF-8?q?=E6=95=B4=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 --- .../demo/app/infra/entity/TransactionEntity.java | 16 ++++++++-------- .../app/presentation/form/TransactionForm.java | 2 ++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java b/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java index fd811c5..bbad50d 100644 --- a/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java +++ b/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java @@ -27,6 +27,14 @@ public class TransactionEntity { @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "transaction_id") private Long transactionId; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user_id") + private UserEntity userEntity; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "category_id") + private CategoryEntity categoryEntity; @Column(name = "amount", nullable = false) private Integer amount; @@ -34,12 +42,4 @@ public class TransactionEntity { @Column(name = "transaction_date", nullable = false) private LocalDate transactionDate; - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "user_id") - private UserEntity userEntity; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "category_id") - private CategoryEntity categoryEntity; - } diff --git a/src/main/java/com/example/demo/app/presentation/form/TransactionForm.java b/src/main/java/com/example/demo/app/presentation/form/TransactionForm.java index d43c944..376f633 100644 --- a/src/main/java/com/example/demo/app/presentation/form/TransactionForm.java +++ b/src/main/java/com/example/demo/app/presentation/form/TransactionForm.java @@ -32,6 +32,7 @@ public class TransactionForm { private Integer transactionType; + public static TransactionForm convertFrom(TransactionModel transactionModel, String categoryName, int income, int expense, int transactionType) { return new TransactionForm( transactionModel.getTransactionId(), @@ -45,6 +46,7 @@ public class TransactionForm { transactionType); } + public static List convertFrom(List transactionModelList, String categoryName, int income, int expense, int transactionType ) { return transactionModelList.stream().map(transactionModel -> TransactionForm.convertFrom(transactionModel, categoryName, income, expense, transactionType)).toList(); } From 54512e411ad663a4105b261b815ef1db8adf8151 Mon Sep 17 00:00:00 2001 From: s-morimoto Date: Thu, 17 Sep 2026 13:59:17 +0900 Subject: [PATCH 08/14] =?UTF-8?q?[ADD]QuestionRepository=E3=81=AE=E4=BD=9C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/app/infra/repository/QuestionRepository.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/com/example/demo/app/infra/repository/QuestionRepository.java diff --git a/src/main/java/com/example/demo/app/infra/repository/QuestionRepository.java b/src/main/java/com/example/demo/app/infra/repository/QuestionRepository.java new file mode 100644 index 0000000..bb100aa --- /dev/null +++ b/src/main/java/com/example/demo/app/infra/repository/QuestionRepository.java @@ -0,0 +1,9 @@ +package com.example.demo.app.infra.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.app.infra.entity.QuestionEntity; + +public interface QuestionRepository extends JpaRepository { + +} From 083ad8644db666a57679da939a0c42deb0bbcded Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 14:02:54 +0900 Subject: [PATCH 09/14] =?UTF-8?q?[EDIT]=20View=E3=81=AE=E9=81=B7=E7=A7=BB?= =?UTF-8?q?=E5=85=88=E3=82=A2=E3=83=89=E3=83=AC=E3=82=B9=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=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 --- .../demo/app/presentation/controller/TransactionController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1ccc329..35fec08 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 @@ -62,7 +62,7 @@ public class TransactionController { model.addAttribute("transactionFormMap", transactionFormMap); - return "transactionList"; + return "transaction_list"; } // 詳細画面 From c7e68f6a4f5e81e00431ac4de5800bea2d6626a9 Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 14:03:13 +0900 Subject: [PATCH 10/14] =?UTF-8?q?[EDIT]=20Table=E5=90=8D=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=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 --- .../java/com/example/demo/app/infra/entity/CategoryEntity.java | 2 +- src/main/java/com/example/demo/app/infra/entity/GoalEntity.java | 2 +- .../java/com/example/demo/app/infra/entity/QuestionEntity.java | 2 +- .../com/example/demo/app/infra/entity/TransactionEntity.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/demo/app/infra/entity/CategoryEntity.java b/src/main/java/com/example/demo/app/infra/entity/CategoryEntity.java index 05650c0..d6a9fc3 100644 --- a/src/main/java/com/example/demo/app/infra/entity/CategoryEntity.java +++ b/src/main/java/com/example/demo/app/infra/entity/CategoryEntity.java @@ -15,7 +15,7 @@ import lombok.Data; import lombok.NoArgsConstructor; @Entity -@Table(name = "category") +@Table(name = "category_t") @Data @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/com/example/demo/app/infra/entity/GoalEntity.java b/src/main/java/com/example/demo/app/infra/entity/GoalEntity.java index 96e0930..7dc7068 100644 --- a/src/main/java/com/example/demo/app/infra/entity/GoalEntity.java +++ b/src/main/java/com/example/demo/app/infra/entity/GoalEntity.java @@ -15,7 +15,7 @@ import lombok.Data; import lombok.NoArgsConstructor; @Entity -@Table(name = "goal") +@Table(name = "goal_t") @Data @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java b/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java index 9dd22ca..6b94b7f 100644 --- a/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java +++ b/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java @@ -15,7 +15,7 @@ import lombok.Data; import lombok.NoArgsConstructor; @Entity -@Table(name = "question") +@Table(name = "question_m") @Data @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java b/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java index bbad50d..a071b19 100644 --- a/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java +++ b/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java @@ -17,7 +17,7 @@ import lombok.Data; import lombok.NoArgsConstructor; @Entity -@Table(name = "transaction") +@Table(name = "transaction_t") @Data @NoArgsConstructor @AllArgsConstructor From 4fc69cddb328974a747ce04307de5dcd2b294a87 Mon Sep 17 00:00:00 2001 From: kkazuya Date: Thu, 17 Sep 2026 14:04:20 +0900 Subject: [PATCH 11/14] =?UTF-8?q?[EDIT]=20Course,=20AllocationEntity?= =?UTF-8?q?=E3=81=AE=E3=83=86=E3=83=BC=E3=83=96=E3=83=AB=E5=90=8D=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/app/infra/entity/AllocationEntity.java | 17 ++++++++++++++++- .../demo/app/infra/entity/CourseEntity.java | 16 +++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/demo/app/infra/entity/AllocationEntity.java b/src/main/java/com/example/demo/app/infra/entity/AllocationEntity.java index 8a6d1a0..2598748 100644 --- a/src/main/java/com/example/demo/app/infra/entity/AllocationEntity.java +++ b/src/main/java/com/example/demo/app/infra/entity/AllocationEntity.java @@ -1,5 +1,7 @@ package com.example.demo.app.infra.entity; +import java.util.List; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -9,12 +11,14 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToOne; import jakarta.persistence.Table; +import com.example.demo.app.domain.model.AllocationModel; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Entity -@Table(name = "allocation") +@Table(name = "allocation_m") @Data @NoArgsConstructor @AllArgsConstructor @@ -32,5 +36,16 @@ public class AllocationEntity { @Column(name = "allocation_ratio", nullable = false) private Integer allocationRatio; + + + public static List createAllocationModelList(List allocationEntityList) { + return allocationEntityList + .stream() + .map(allocationEntity -> new AllocationModel( + allocationEntity.getCategoryEntity().getCategoryId(), + allocationEntity.getCourseEntity().getCourseId(), + allocationEntity.getAllocationRatio() + )).toList(); + } } diff --git a/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java b/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java index 995ac6b..f1a1d74 100644 --- a/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java +++ b/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java @@ -12,12 +12,14 @@ import jakarta.persistence.Table; import org.springframework.data.annotation.Id; +import com.example.demo.app.domain.model.CourseModel; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Entity -@Table(name = "course") +@Table(name = "course_m") @Data @NoArgsConstructor @AllArgsConstructor @@ -41,4 +43,16 @@ public class CourseEntity { @OneToOne(mappedBy = "courseEntity") private List allocationEntity; + + public static List createCourseModelList(List courseEntityList) { + + return courseEntityList + .stream() + .map(courseEntity -> new CourseModel( + courseEntity.getCourseId(), + courseEntity.getCourseName(), + courseEntity.getDescription() + )).toList(); + } + } From 7f828657ad892d5c5dff6f1b4043bbae3d0238c0 Mon Sep 17 00:00:00 2001 From: kkazuya Date: Thu, 17 Sep 2026 14:09:06 +0900 Subject: [PATCH 12/14] =?UTF-8?q?[ADD]=20Allocation,=20Course=E3=81=AEMode?= =?UTF-8?q?l=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=BE=E3=81=97?= =?UTF-8?q?=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/domain/model/AllocationModel.java | 14 ++++++++++ .../demo/app/domain/model/CourseModel.java | 28 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/main/java/com/example/demo/app/domain/model/AllocationModel.java create mode 100644 src/main/java/com/example/demo/app/domain/model/CourseModel.java diff --git a/src/main/java/com/example/demo/app/domain/model/AllocationModel.java b/src/main/java/com/example/demo/app/domain/model/AllocationModel.java new file mode 100644 index 0000000..1f6a9c1 --- /dev/null +++ b/src/main/java/com/example/demo/app/domain/model/AllocationModel.java @@ -0,0 +1,14 @@ +package com.example.demo.app.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class AllocationModel { + + private Long categoryId; + private Long courseId; + private Integer allocationRatio; + +} diff --git a/src/main/java/com/example/demo/app/domain/model/CourseModel.java b/src/main/java/com/example/demo/app/domain/model/CourseModel.java new file mode 100644 index 0000000..e9e8014 --- /dev/null +++ b/src/main/java/com/example/demo/app/domain/model/CourseModel.java @@ -0,0 +1,28 @@ +package com.example.demo.app.domain.model; + +import java.util.List; + +import com.example.demo.app.infra.entity.CourseEntity; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class CourseModel { + + private Long courseId; + private String courseName; + private String description; + + public static CourseModel convertFrom(CourseEntity courseEntity) { + return new CourseModel( + courseEntity.getCourseId(), + courseEntity.getCourseName(), + courseEntity.getDescription()); + } + + public static List convertFrom(List courseEntityList) { + return courseEntityList.stream().map(CourseModel::convertFrom).toList(); + } +} From 80d83b96f4d49b5e68a6d2eb0c0c7b26be1d5b95 Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 14:15:59 +0900 Subject: [PATCH 13/14] =?UTF-8?q?[FIX]=20import=E5=8F=8A=E3=81=B3=E5=9E=8B?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3=E3=82=92=E8=A1=8C=E3=81=84=E3=81=BE?= =?UTF-8?q?=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/demo/app/infra/entity/CourseEntity.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java b/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java index f1a1d74..3afec50 100644 --- a/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java +++ b/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java @@ -6,12 +6,11 @@ import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; import jakarta.persistence.OneToMany; import jakarta.persistence.OneToOne; import jakarta.persistence.Table; -import org.springframework.data.annotation.Id; - import com.example.demo.app.domain.model.CourseModel; import lombok.AllArgsConstructor; @@ -41,7 +40,7 @@ public class CourseEntity { private List userEntity; @OneToOne(mappedBy = "courseEntity") - private List allocationEntity; + private AllocationEntity allocationEntity; public static List createCourseModelList(List courseEntityList) { From cf31d034151cdd60dbd7dae849f07f57cb845846 Mon Sep 17 00:00:00 2001 From: s-choi Date: Thu, 17 Sep 2026 14:16:19 +0900 Subject: [PATCH 14/14] =?UTF-8?q?[FIX]=20ID=E3=81=AE=E5=9E=8B=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=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 --- .../com/example/demo/app/infra/entity/QuestionEntity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java b/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java index 6b94b7f..1eb3503 100644 --- a/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java +++ b/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java @@ -24,12 +24,12 @@ public class QuestionEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "secret_question_id") - private Integer secretQuestionId; + private Long secretQuestionId; @Column(name = "question_text", nullable = false) private String questionText; - @OneToMany(mappedBy = "QuestionEntity") + @OneToMany(mappedBy = "questionEntity") private List userEntity; }