From a7d61be4508a1339597b607fc9066add4fd546d4 Mon Sep 17 00:00:00 2001 From: n-kawahito Date: Thu, 17 Sep 2026 16:33:26 +0900 Subject: [PATCH 01/12] =?UTF-8?q?[FIX]=E5=88=86=E6=9E=90=E5=80=A4=E3=81=AE?= =?UTF-8?q?=E3=80=8C=E3=83=BC=E3=80=8D=E9=83=A8=E5=88=86=E3=81=AE=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E3=82=92=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 --- src/main/resources/templates/analysis.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/resources/templates/analysis.html b/src/main/resources/templates/analysis.html index 55201dd..9f995ef 100644 --- a/src/main/resources/templates/analysis.html +++ b/src/main/resources/templates/analysis.html @@ -24,8 +24,8 @@ 0 @@ -63,16 +63,16 @@
From f68a2569bdfafdbdfc470669e0d50e32058cd0ec Mon Sep 17 00:00:00 2001 From: n-kawahito Date: Thu, 17 Sep 2026 16:36:43 +0900 Subject: [PATCH 02/12] =?UTF-8?q?[FIX]=E3=83=A6=E3=83=BC=E3=82=B6=E3=83=BC?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E3=81=AE=E4=BE=8B=E5=A4=96=E5=87=A6=E7=90=86?= =?UTF-8?q?=E3=82=92=E8=A8=98=E8=BF=B0=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/app/domain/service/impl/AnalysisServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java index d0f3388..0764d41 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java @@ -33,7 +33,9 @@ public class AnalysisServiceImpl implements AnalysisService { public AnalysisModel getAnalysis(Long userId) { // ユーザー情報取得、月別使用可能資金取得 - UserEntity userEntity = userRepository.findById(userId).orElseThrow(); + UserEntity userEntity = userRepository.findById(userId).orElseThrow(() -> + new RuntimeException( + "User not found.")); // コースID取得 Long courseId = userEntity.getCourseEntity().getCourseId(); From 6d494e1ac1c8da8cb9331289486ef011c85be6f8 Mon Sep 17 00:00:00 2001 From: n-kawahito Date: Fri, 18 Sep 2026 09:37:07 +0900 Subject: [PATCH 03/12] Merge branch 'k-oshita' of https://gitea.it-college.co.jp/2026_09_5H_Spring_KIZAKI/Monegement into n-kawahito --- .../app/domain/service/CourseInfoService.java | 10 --- .../app/domain/service/CourseService.java | 11 ---- .../domain/service/PasswordResetService.java | 8 --- .../demo/app/domain/service/UserService.java | 8 --- .../service/impl/CourseInfoServiceImpl.java | 23 ------- .../service/impl/CourseServiceImpl.java | 24 -------- .../impl/PasswordResetServiceImpl.java | 41 ------------- .../domain/service/impl/UserServiceImpl.java | 58 ------------------ .../controller/AnalysisController.java | 15 +++-- .../controller/PasswordResetController.java | 61 ------------------- .../controller/UserController.java | 49 --------------- .../app/presentation/form/AnalysisForm.java | 32 ---------- .../form/CategoryAnalysisForm.java | 48 --------------- .../presentation/form/PasswordResetForm.java | 13 ---- .../demo/app/presentation/form/UserForm.java | 24 -------- src/main/resources/templates/analysis.html | 8 +-- .../resources/templates/password_reset.html | 42 ------------- .../templates/user_register_confirm.html | 2 +- 18 files changed, 10 insertions(+), 467 deletions(-) delete mode 100644 src/main/java/com/example/demo/app/domain/service/CourseInfoService.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/CourseService.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/PasswordResetService.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/UserService.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/impl/CourseInfoServiceImpl.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java delete mode 100644 src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java delete mode 100644 src/main/java/com/example/demo/app/presentation/controller/UserController.java delete mode 100644 src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java delete mode 100644 src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java delete mode 100644 src/main/java/com/example/demo/app/presentation/form/PasswordResetForm.java delete mode 100644 src/main/java/com/example/demo/app/presentation/form/UserForm.java delete mode 100644 src/main/resources/templates/password_reset.html diff --git a/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java b/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java deleted file mode 100644 index 83cf4ab..0000000 --- a/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.demo.app.domain.service; - -import java.util.List; - -import com.example.demo.app.domain.model.CourseInfoModel; - -public interface CourseInfoService { - - public List findAll(); -} diff --git a/src/main/java/com/example/demo/app/domain/service/CourseService.java b/src/main/java/com/example/demo/app/domain/service/CourseService.java deleted file mode 100644 index 4681860..0000000 --- a/src/main/java/com/example/demo/app/domain/service/CourseService.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.demo.app.domain.service; - -import java.util.List; - -import com.example.demo.app.domain.model.CourseModel; - -public interface CourseService { - - public List findAll(); - -} diff --git a/src/main/java/com/example/demo/app/domain/service/PasswordResetService.java b/src/main/java/com/example/demo/app/domain/service/PasswordResetService.java deleted file mode 100644 index ec1140e..0000000 --- a/src/main/java/com/example/demo/app/domain/service/PasswordResetService.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.demo.app.domain.service; - -import com.example.demo.app.presentation.form.PasswordResetForm; - -public interface PasswordResetService { - - boolean resetPassword(Long userId, PasswordResetForm passwordResetForm); -} diff --git a/src/main/java/com/example/demo/app/domain/service/UserService.java b/src/main/java/com/example/demo/app/domain/service/UserService.java deleted file mode 100644 index 4a7a338..0000000 --- a/src/main/java/com/example/demo/app/domain/service/UserService.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.demo.app.domain.service; - -import com.example.demo.app.presentation.form.UserForm; - -public interface UserService { - - void register(UserForm userForm); -} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/CourseInfoServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/CourseInfoServiceImpl.java deleted file mode 100644 index 4658a18..0000000 --- a/src/main/java/com/example/demo/app/domain/service/impl/CourseInfoServiceImpl.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.demo.app.domain.service.impl; - -import java.util.List; - -import org.springframework.stereotype.Service; - -import com.example.demo.app.domain.model.CourseInfoModel; -import com.example.demo.app.domain.service.CourseInfoService; -import com.example.demo.app.infra.repository.AllocationRepository; - -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class CourseInfoServiceImpl implements CourseInfoService { - - private final AllocationRepository allocationRepository; - - @Override - public List findAll() { - return allocationRepository.findAllJoinedAllocation(); - } -} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java deleted file mode 100644 index a4dec5f..0000000 --- a/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.example.demo.app.domain.service.impl; - -import java.util.List; - -import org.springframework.stereotype.Service; - -import com.example.demo.app.domain.model.CourseModel; -import com.example.demo.app.domain.service.CourseService; -import com.example.demo.app.infra.entity.CourseEntity; -import com.example.demo.app.infra.repository.CourseRepository; - -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class CourseServiceImpl implements CourseService { - - private final CourseRepository courseRepository; - - public List findAll(){ - return CourseEntity.createCourseModelList(courseRepository.findAll()); - } - -} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java deleted file mode 100644 index 2866cea..0000000 --- a/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.example.demo.app.domain.service.impl; - -import org.springframework.stereotype.Service; - -import com.example.demo.app.domain.service.PasswordResetService; -import com.example.demo.app.infra.entity.UserEntity; -import com.example.demo.app.infra.repository.UserRepository; -import com.example.demo.app.presentation.form.PasswordResetForm; - -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class PasswordResetServiceImpl implements PasswordResetService { - - private final UserRepository userRepository; - - @Override - public boolean resetPassword( - Long userId, - PasswordResetForm passwordResetForm) { - - if (!passwordResetForm.getPassword() - .equals(passwordResetForm.getPasswordConfirm())) { - return false; - } - - UserEntity userEntity = - userRepository.findById(userId).orElse(null); - - if (userEntity == null) { - return false; - } - - userEntity.setPassword(passwordResetForm.getPassword()); - - userRepository.save(userEntity); - - return true; - } -} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java deleted file mode 100644 index a74f42b..0000000 --- a/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.example.demo.app.domain.service.impl; - -import org.springframework.stereotype.Service; - -import com.example.demo.app.domain.service.UserService; -import com.example.demo.app.infra.entity.CourseEntity; -import com.example.demo.app.infra.entity.GoalEntity; -import com.example.demo.app.infra.entity.QuestionEntity; -import com.example.demo.app.infra.entity.UserEntity; -import com.example.demo.app.infra.repository.CourseRepository; -import com.example.demo.app.infra.repository.GoalRepository; -import com.example.demo.app.infra.repository.QuestionRepository; -import com.example.demo.app.infra.repository.UserRepository; -import com.example.demo.app.presentation.form.UserForm; - -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class UserServiceImpl implements UserService { - - private final UserRepository userRepository; - private final QuestionRepository questionRepository; - private final GoalRepository goalRepository; - private final CourseRepository courseRepository; - - @Override - public void register(UserForm userForm) { - - UserEntity userEntity = new UserEntity(); - - userEntity.setUserName(userForm.getUserName()); - userEntity.setMailAddress(userForm.getMailAddress()); - userEntity.setPassword(userForm.getPassword()); - userEntity.setSecretQuestionAnswer(userForm.getSecretAnswer()); - userEntity.setBirthDate(userForm.getBirthDate()); - userEntity.setSaving(userForm.getSaving()); - userEntity.setAnnualIncome(userForm.getAnnualIncome()); - userEntity.setMonthlyBudget(userForm.getMonthlyBudget()); - - QuestionEntity questionEntity = - questionRepository.findById(userForm.getSecretQuestionId()).orElse(null); - - GoalEntity goalEntity = - goalRepository.findById(userForm.getGoalId()).orElse(null); - - CourseEntity courseEntity = - courseRepository.findById(userForm.getCourseId()).orElse(null); - - userEntity.setQuestionEntity(questionEntity); - userEntity.setGoalEntity(goalEntity); - userEntity.setCourseEntity(courseEntity); - - userEntity.setDeleteFlag(0); - - userRepository.save(userEntity); - } -} diff --git a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java index 5bc8cd9..6b48a58 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java @@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.GetMapping; import com.example.demo.app.domain.model.AnalysisModel; import com.example.demo.app.domain.model.LoginModel; import com.example.demo.app.domain.service.AnalysisService; -import com.example.demo.app.presentation.form.AnalysisForm; import lombok.RequiredArgsConstructor; @@ -24,15 +23,15 @@ public class AnalysisController { public String showAnalysis(Model model, HttpSession session) { //ログインユーザーの取得(セッション) - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); - + LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + //分析結果の取得(Service) - AnalysisModel analysisModel = analysisService.getAnalysis(loginUser.getUserId()); - - AnalysisForm analysisForm = AnalysisForm.convertFrom(analysisModel); - + AnalysisModel analysisModel = analysisService.getAnalysis(loginUser.getUserId()); + + AnalysisForm analysisForm = AnalysisForm.convertFrom(analysisModel); + //model格納 - model.addAttribute("analysisForm", analysisForm); + model.addAttribute("analysisForm", analysisForm); return "analysis"; } diff --git a/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java b/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java deleted file mode 100644 index b5fcfba..0000000 --- a/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.example.demo.app.presentation.controller; - -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.PostMapping; - -import com.example.demo.app.domain.service.PasswordResetService; -import com.example.demo.app.presentation.form.PasswordResetForm; - -import lombok.RequiredArgsConstructor; - -@Controller -@RequiredArgsConstructor -public class PasswordResetController { - - private final PasswordResetService passwordResetService; - - @GetMapping("/password_reset") - public String showPasswordReset(Model model) { - - model.addAttribute( - "passwordResetForm", - new PasswordResetForm()); - - return "password_reset"; - } - - @PostMapping("/password_reset") - public String resetPassword( - PasswordResetForm passwordResetForm, - Model model, - HttpSession session) { - - Long userId = - (Long) session.getAttribute("passwordResetUserId"); - - if (userId == null) { - return "redirect:/login"; - } - - boolean isReset = - passwordResetService.resetPassword( - userId, - passwordResetForm); - - if (!isReset) { - model.addAttribute( - "errorMessage", - "パスワードが一致していません。"); - - return "password_reset"; - } - - session.removeAttribute("passwordResetUserId"); - - return "redirect:/login"; - } -} diff --git a/src/main/java/com/example/demo/app/presentation/controller/UserController.java b/src/main/java/com/example/demo/app/presentation/controller/UserController.java deleted file mode 100644 index 7b2aef4..0000000 --- a/src/main/java/com/example/demo/app/presentation/controller/UserController.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.example.demo.app.presentation.controller; - -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 com.example.demo.app.presentation.form.UserForm; - -import lombok.RequiredArgsConstructor; - -@Controller -@RequiredArgsConstructor -public class UserController { - - @GetMapping("/user/register") - public String showRegister(Model model) { - model.addAttribute("userForm", new UserForm()); - return "user_register"; - } - - @PostMapping("/user/register/confirm") - public String confirmRegister( - @ModelAttribute UserForm userForm, - HttpSession session) { - - session.setAttribute("userForm", userForm); - - return "user_register_confirm"; - } - - @PostMapping("/user/register/complete") - public String completeRegister(HttpSession session) { - - UserForm userForm = - (UserForm) session.getAttribute("userForm"); - - // DBへの登録処理 - - session.removeAttribute("userForm"); - - return "redirect:/login"; - } - - -} diff --git a/src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java b/src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java deleted file mode 100644 index c9c4202..0000000 --- a/src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.example.demo.app.presentation.form; - -import java.util.List; - -import com.example.demo.app.domain.model.AnalysisModel; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class AnalysisForm { - - private Integer currentMonthTotalAmount; - private Integer previousMonthTotalAmount; - private Integer totalDifferenceAmount; - private List categoryAnalysisFormList; - - public static AnalysisForm convertFrom( - AnalysisModel analysisModel) { - - return new AnalysisForm( - analysisModel.getCurrentMonthTotalAmount(), - analysisModel.getPreviousMonthTotalAmount(), - analysisModel.getTotalDifferenceAmount(), - CategoryAnalysisForm.convertFrom( - analysisModel.getCategoryAnalysisModelList())); - } - -} diff --git a/src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java b/src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java deleted file mode 100644 index add1762..0000000 --- a/src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.example.demo.app.presentation.form; - -import java.util.List; - -import com.example.demo.app.domain.model.CategoryAnalysisModel; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class CategoryAnalysisForm { - - private String categoryName; - - private Integer currentMonthAmount; - - private Integer previousMonthAmount; - - private Integer monthDifferenceAmount; - - private Integer courseLimitAmount; - - private Integer courseDifferenceAmount; - - public static CategoryAnalysisForm convertFrom( - - CategoryAnalysisModel categoryAnalysisModel) { - return new CategoryAnalysisForm( - categoryAnalysisModel.getCategoryName(), - categoryAnalysisModel.getCurrentMonthAmount(), - categoryAnalysisModel.getPreviousMonthAmount(), - categoryAnalysisModel.getMonthDifferenceAmount(), - categoryAnalysisModel.getCourseLimitAmount(), - categoryAnalysisModel.getCourseDifferenceAmount()); - } - - public static List convertFrom( - List categoryAnalysisModelList) { - - return categoryAnalysisModelList.stream() - .map(CategoryAnalysisForm::convertFrom) - .toList(); - } - -} diff --git a/src/main/java/com/example/demo/app/presentation/form/PasswordResetForm.java b/src/main/java/com/example/demo/app/presentation/form/PasswordResetForm.java deleted file mode 100644 index 3213e1b..0000000 --- a/src/main/java/com/example/demo/app/presentation/form/PasswordResetForm.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.demo.app.presentation.form; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class PasswordResetForm { - private String password; - private String passwordConfirm; -} diff --git a/src/main/java/com/example/demo/app/presentation/form/UserForm.java b/src/main/java/com/example/demo/app/presentation/form/UserForm.java deleted file mode 100644 index e51f23f..0000000 --- a/src/main/java/com/example/demo/app/presentation/form/UserForm.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.example.demo.app.presentation.form; - -import java.time.LocalDate; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class UserForm { - private String userName; - private String mailAddress; - private String password; - private Long secretQuestionId; - private String SecretAnswer; - private LocalDate birthDate; - private Integer saving; - private Integer annualIncome; - private Integer monthlyBudget; - private Long goalId; - private Long courseId; -} diff --git a/src/main/resources/templates/analysis.html b/src/main/resources/templates/analysis.html index 9f995ef..87fbc0f 100644 --- a/src/main/resources/templates/analysis.html +++ b/src/main/resources/templates/analysis.html @@ -12,7 +12,7 @@ - + @@ -42,11 +42,7 @@ - + diff --git a/src/main/resources/templates/password_reset.html b/src/main/resources/templates/password_reset.html deleted file mode 100644 index 522fd4b..0000000 --- a/src/main/resources/templates/password_reset.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - -パスワード再設定 - - -
- -
-

パスワード再設定

- -
-
- - -
- -
- - -
- - - - -
-

-
-
- - \ 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 index 2b35041..aad56dd 100644 --- a/src/main/resources/templates/user_register_confirm.html +++ b/src/main/resources/templates/user_register_confirm.html @@ -1,5 +1,5 @@ - +新規会員登録確認 From aa2a511d2bd30d15b65969a45a9d9b4ad9825be9 Mon Sep 17 00:00:00 2001 From: n-kawahito Date: Fri, 18 Sep 2026 09:41:38 +0900 Subject: [PATCH 04/12] Merge branch 'k-kobayashi' of https://gitea.it-college.co.jp/2026_09_5H_Spring_KIZAKI/Monegement into n-kawahito --- .../app/domain/service/CourseInfoService.java | 10 --- .../app/domain/service/CourseService.java | 11 ---- .../domain/service/PasswordResetService.java | 8 --- .../demo/app/domain/service/UserService.java | 8 --- .../service/impl/AnalysisServiceImpl.java | 4 +- .../service/impl/CourseInfoServiceImpl.java | 23 ------- .../service/impl/CourseServiceImpl.java | 24 -------- .../impl/PasswordResetServiceImpl.java | 41 ------------- .../domain/service/impl/UserServiceImpl.java | 58 ------------------ .../demo/app/infra/entity/CourseEntity.java | 5 -- .../controller/AnalysisController.java | 15 +++-- .../controller/CourseController.java | 2 +- .../controller/PasswordResetController.java | 61 ------------------- .../controller/UserController.java | 49 --------------- .../app/presentation/form/AnalysisForm.java | 32 ---------- .../form/CategoryAnalysisForm.java | 48 --------------- .../presentation/form/PasswordResetForm.java | 13 ---- .../demo/app/presentation/form/UserForm.java | 24 -------- src/main/resources/templates/analysis.html | 20 +++--- .../resources/templates/password_reset.html | 42 ------------- .../resources/templates/select_course.html | 2 +- .../templates/user_register_confirm.html | 2 +- 22 files changed, 21 insertions(+), 481 deletions(-) delete mode 100644 src/main/java/com/example/demo/app/domain/service/CourseInfoService.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/CourseService.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/PasswordResetService.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/UserService.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/impl/CourseInfoServiceImpl.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java delete mode 100644 src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java delete mode 100644 src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java delete mode 100644 src/main/java/com/example/demo/app/presentation/controller/UserController.java delete mode 100644 src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java delete mode 100644 src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java delete mode 100644 src/main/java/com/example/demo/app/presentation/form/PasswordResetForm.java delete mode 100644 src/main/java/com/example/demo/app/presentation/form/UserForm.java delete mode 100644 src/main/resources/templates/password_reset.html diff --git a/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java b/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java deleted file mode 100644 index 83cf4ab..0000000 --- a/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.demo.app.domain.service; - -import java.util.List; - -import com.example.demo.app.domain.model.CourseInfoModel; - -public interface CourseInfoService { - - public List findAll(); -} diff --git a/src/main/java/com/example/demo/app/domain/service/CourseService.java b/src/main/java/com/example/demo/app/domain/service/CourseService.java deleted file mode 100644 index 4681860..0000000 --- a/src/main/java/com/example/demo/app/domain/service/CourseService.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.demo.app.domain.service; - -import java.util.List; - -import com.example.demo.app.domain.model.CourseModel; - -public interface CourseService { - - public List findAll(); - -} diff --git a/src/main/java/com/example/demo/app/domain/service/PasswordResetService.java b/src/main/java/com/example/demo/app/domain/service/PasswordResetService.java deleted file mode 100644 index ec1140e..0000000 --- a/src/main/java/com/example/demo/app/domain/service/PasswordResetService.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.demo.app.domain.service; - -import com.example.demo.app.presentation.form.PasswordResetForm; - -public interface PasswordResetService { - - boolean resetPassword(Long userId, PasswordResetForm passwordResetForm); -} diff --git a/src/main/java/com/example/demo/app/domain/service/UserService.java b/src/main/java/com/example/demo/app/domain/service/UserService.java deleted file mode 100644 index 4a7a338..0000000 --- a/src/main/java/com/example/demo/app/domain/service/UserService.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.demo.app.domain.service; - -import com.example.demo.app.presentation.form.UserForm; - -public interface UserService { - - void register(UserForm userForm); -} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java index d0f3388..0764d41 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java @@ -33,7 +33,9 @@ public class AnalysisServiceImpl implements AnalysisService { public AnalysisModel getAnalysis(Long userId) { // ユーザー情報取得、月別使用可能資金取得 - UserEntity userEntity = userRepository.findById(userId).orElseThrow(); + UserEntity userEntity = userRepository.findById(userId).orElseThrow(() -> + new RuntimeException( + "User not found.")); // コースID取得 Long courseId = userEntity.getCourseEntity().getCourseId(); diff --git a/src/main/java/com/example/demo/app/domain/service/impl/CourseInfoServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/CourseInfoServiceImpl.java deleted file mode 100644 index 4658a18..0000000 --- a/src/main/java/com/example/demo/app/domain/service/impl/CourseInfoServiceImpl.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.demo.app.domain.service.impl; - -import java.util.List; - -import org.springframework.stereotype.Service; - -import com.example.demo.app.domain.model.CourseInfoModel; -import com.example.demo.app.domain.service.CourseInfoService; -import com.example.demo.app.infra.repository.AllocationRepository; - -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class CourseInfoServiceImpl implements CourseInfoService { - - private final AllocationRepository allocationRepository; - - @Override - public List findAll() { - return allocationRepository.findAllJoinedAllocation(); - } -} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java deleted file mode 100644 index a4dec5f..0000000 --- a/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.example.demo.app.domain.service.impl; - -import java.util.List; - -import org.springframework.stereotype.Service; - -import com.example.demo.app.domain.model.CourseModel; -import com.example.demo.app.domain.service.CourseService; -import com.example.demo.app.infra.entity.CourseEntity; -import com.example.demo.app.infra.repository.CourseRepository; - -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class CourseServiceImpl implements CourseService { - - private final CourseRepository courseRepository; - - public List findAll(){ - return CourseEntity.createCourseModelList(courseRepository.findAll()); - } - -} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java deleted file mode 100644 index 2866cea..0000000 --- a/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.example.demo.app.domain.service.impl; - -import org.springframework.stereotype.Service; - -import com.example.demo.app.domain.service.PasswordResetService; -import com.example.demo.app.infra.entity.UserEntity; -import com.example.demo.app.infra.repository.UserRepository; -import com.example.demo.app.presentation.form.PasswordResetForm; - -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class PasswordResetServiceImpl implements PasswordResetService { - - private final UserRepository userRepository; - - @Override - public boolean resetPassword( - Long userId, - PasswordResetForm passwordResetForm) { - - if (!passwordResetForm.getPassword() - .equals(passwordResetForm.getPasswordConfirm())) { - return false; - } - - UserEntity userEntity = - userRepository.findById(userId).orElse(null); - - if (userEntity == null) { - return false; - } - - userEntity.setPassword(passwordResetForm.getPassword()); - - userRepository.save(userEntity); - - return true; - } -} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java deleted file mode 100644 index a74f42b..0000000 --- a/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.example.demo.app.domain.service.impl; - -import org.springframework.stereotype.Service; - -import com.example.demo.app.domain.service.UserService; -import com.example.demo.app.infra.entity.CourseEntity; -import com.example.demo.app.infra.entity.GoalEntity; -import com.example.demo.app.infra.entity.QuestionEntity; -import com.example.demo.app.infra.entity.UserEntity; -import com.example.demo.app.infra.repository.CourseRepository; -import com.example.demo.app.infra.repository.GoalRepository; -import com.example.demo.app.infra.repository.QuestionRepository; -import com.example.demo.app.infra.repository.UserRepository; -import com.example.demo.app.presentation.form.UserForm; - -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class UserServiceImpl implements UserService { - - private final UserRepository userRepository; - private final QuestionRepository questionRepository; - private final GoalRepository goalRepository; - private final CourseRepository courseRepository; - - @Override - public void register(UserForm userForm) { - - UserEntity userEntity = new UserEntity(); - - userEntity.setUserName(userForm.getUserName()); - userEntity.setMailAddress(userForm.getMailAddress()); - userEntity.setPassword(userForm.getPassword()); - userEntity.setSecretQuestionAnswer(userForm.getSecretAnswer()); - userEntity.setBirthDate(userForm.getBirthDate()); - userEntity.setSaving(userForm.getSaving()); - userEntity.setAnnualIncome(userForm.getAnnualIncome()); - userEntity.setMonthlyBudget(userForm.getMonthlyBudget()); - - QuestionEntity questionEntity = - questionRepository.findById(userForm.getSecretQuestionId()).orElse(null); - - GoalEntity goalEntity = - goalRepository.findById(userForm.getGoalId()).orElse(null); - - CourseEntity courseEntity = - courseRepository.findById(userForm.getCourseId()).orElse(null); - - userEntity.setQuestionEntity(questionEntity); - userEntity.setGoalEntity(goalEntity); - userEntity.setCourseEntity(courseEntity); - - userEntity.setDeleteFlag(0); - - userRepository.save(userEntity); - } -} 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 3afec50..fc66343 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 @@ -8,7 +8,6 @@ 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 com.example.demo.app.domain.model.CourseModel; @@ -39,10 +38,6 @@ public class CourseEntity { @OneToMany(mappedBy = "courseEntity") private List userEntity; - @OneToOne(mappedBy = "courseEntity") - private AllocationEntity allocationEntity; - - public static List createCourseModelList(List courseEntityList) { return courseEntityList diff --git a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java index 5bc8cd9..6b48a58 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java @@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.GetMapping; import com.example.demo.app.domain.model.AnalysisModel; import com.example.demo.app.domain.model.LoginModel; import com.example.demo.app.domain.service.AnalysisService; -import com.example.demo.app.presentation.form.AnalysisForm; import lombok.RequiredArgsConstructor; @@ -24,15 +23,15 @@ public class AnalysisController { public String showAnalysis(Model model, HttpSession session) { //ログインユーザーの取得(セッション) - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); - + LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + //分析結果の取得(Service) - AnalysisModel analysisModel = analysisService.getAnalysis(loginUser.getUserId()); - - AnalysisForm analysisForm = AnalysisForm.convertFrom(analysisModel); - + AnalysisModel analysisModel = analysisService.getAnalysis(loginUser.getUserId()); + + AnalysisForm analysisForm = AnalysisForm.convertFrom(analysisModel); + //model格納 - model.addAttribute("analysisForm", analysisForm); + model.addAttribute("analysisForm", analysisForm); return "analysis"; } diff --git a/src/main/java/com/example/demo/app/presentation/controller/CourseController.java b/src/main/java/com/example/demo/app/presentation/controller/CourseController.java index c9199af..ff520ae 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/CourseController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/CourseController.java @@ -35,7 +35,7 @@ public class CourseController { model.addAttribute("courseList", CourseForm.convertFrom(courseService.findAll())); model.addAttribute("courseInfoList", CourseInfoForm.convertFrom(courseInfoService.findAll())); - return "select-course"; + return "select_course"; //} catch (Exception e) { // // ログイン情報の破棄 diff --git a/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java b/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java deleted file mode 100644 index b5fcfba..0000000 --- a/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.example.demo.app.presentation.controller; - -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.PostMapping; - -import com.example.demo.app.domain.service.PasswordResetService; -import com.example.demo.app.presentation.form.PasswordResetForm; - -import lombok.RequiredArgsConstructor; - -@Controller -@RequiredArgsConstructor -public class PasswordResetController { - - private final PasswordResetService passwordResetService; - - @GetMapping("/password_reset") - public String showPasswordReset(Model model) { - - model.addAttribute( - "passwordResetForm", - new PasswordResetForm()); - - return "password_reset"; - } - - @PostMapping("/password_reset") - public String resetPassword( - PasswordResetForm passwordResetForm, - Model model, - HttpSession session) { - - Long userId = - (Long) session.getAttribute("passwordResetUserId"); - - if (userId == null) { - return "redirect:/login"; - } - - boolean isReset = - passwordResetService.resetPassword( - userId, - passwordResetForm); - - if (!isReset) { - model.addAttribute( - "errorMessage", - "パスワードが一致していません。"); - - return "password_reset"; - } - - session.removeAttribute("passwordResetUserId"); - - return "redirect:/login"; - } -} diff --git a/src/main/java/com/example/demo/app/presentation/controller/UserController.java b/src/main/java/com/example/demo/app/presentation/controller/UserController.java deleted file mode 100644 index 7b2aef4..0000000 --- a/src/main/java/com/example/demo/app/presentation/controller/UserController.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.example.demo.app.presentation.controller; - -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 com.example.demo.app.presentation.form.UserForm; - -import lombok.RequiredArgsConstructor; - -@Controller -@RequiredArgsConstructor -public class UserController { - - @GetMapping("/user/register") - public String showRegister(Model model) { - model.addAttribute("userForm", new UserForm()); - return "user_register"; - } - - @PostMapping("/user/register/confirm") - public String confirmRegister( - @ModelAttribute UserForm userForm, - HttpSession session) { - - session.setAttribute("userForm", userForm); - - return "user_register_confirm"; - } - - @PostMapping("/user/register/complete") - public String completeRegister(HttpSession session) { - - UserForm userForm = - (UserForm) session.getAttribute("userForm"); - - // DBへの登録処理 - - session.removeAttribute("userForm"); - - return "redirect:/login"; - } - - -} diff --git a/src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java b/src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java deleted file mode 100644 index c9c4202..0000000 --- a/src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.example.demo.app.presentation.form; - -import java.util.List; - -import com.example.demo.app.domain.model.AnalysisModel; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class AnalysisForm { - - private Integer currentMonthTotalAmount; - private Integer previousMonthTotalAmount; - private Integer totalDifferenceAmount; - private List categoryAnalysisFormList; - - public static AnalysisForm convertFrom( - AnalysisModel analysisModel) { - - return new AnalysisForm( - analysisModel.getCurrentMonthTotalAmount(), - analysisModel.getPreviousMonthTotalAmount(), - analysisModel.getTotalDifferenceAmount(), - CategoryAnalysisForm.convertFrom( - analysisModel.getCategoryAnalysisModelList())); - } - -} diff --git a/src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java b/src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java deleted file mode 100644 index add1762..0000000 --- a/src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.example.demo.app.presentation.form; - -import java.util.List; - -import com.example.demo.app.domain.model.CategoryAnalysisModel; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class CategoryAnalysisForm { - - private String categoryName; - - private Integer currentMonthAmount; - - private Integer previousMonthAmount; - - private Integer monthDifferenceAmount; - - private Integer courseLimitAmount; - - private Integer courseDifferenceAmount; - - public static CategoryAnalysisForm convertFrom( - - CategoryAnalysisModel categoryAnalysisModel) { - return new CategoryAnalysisForm( - categoryAnalysisModel.getCategoryName(), - categoryAnalysisModel.getCurrentMonthAmount(), - categoryAnalysisModel.getPreviousMonthAmount(), - categoryAnalysisModel.getMonthDifferenceAmount(), - categoryAnalysisModel.getCourseLimitAmount(), - categoryAnalysisModel.getCourseDifferenceAmount()); - } - - public static List convertFrom( - List categoryAnalysisModelList) { - - return categoryAnalysisModelList.stream() - .map(CategoryAnalysisForm::convertFrom) - .toList(); - } - -} diff --git a/src/main/java/com/example/demo/app/presentation/form/PasswordResetForm.java b/src/main/java/com/example/demo/app/presentation/form/PasswordResetForm.java deleted file mode 100644 index 3213e1b..0000000 --- a/src/main/java/com/example/demo/app/presentation/form/PasswordResetForm.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.demo.app.presentation.form; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class PasswordResetForm { - private String password; - private String passwordConfirm; -} diff --git a/src/main/java/com/example/demo/app/presentation/form/UserForm.java b/src/main/java/com/example/demo/app/presentation/form/UserForm.java deleted file mode 100644 index e51f23f..0000000 --- a/src/main/java/com/example/demo/app/presentation/form/UserForm.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.example.demo.app.presentation.form; - -import java.time.LocalDate; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class UserForm { - private String userName; - private String mailAddress; - private String password; - private Long secretQuestionId; - private String SecretAnswer; - private LocalDate birthDate; - private Integer saving; - private Integer annualIncome; - private Integer monthlyBudget; - private Long goalId; - private Long courseId; -} diff --git a/src/main/resources/templates/analysis.html b/src/main/resources/templates/analysis.html index 55201dd..87fbc0f 100644 --- a/src/main/resources/templates/analysis.html +++ b/src/main/resources/templates/analysis.html @@ -12,7 +12,7 @@
カテゴリ別 支出 前月比
カテゴリ別 支出 - 前月比 -
- コース比 -
前月比
コース比
- + @@ -24,8 +24,8 @@ 0 - + @@ -63,16 +59,16 @@ 配分(%) - + diff --git a/src/main/resources/templates/user_register_confirm.html b/src/main/resources/templates/user_register_confirm.html index 2b35041..aad56dd 100644 --- a/src/main/resources/templates/user_register_confirm.html +++ b/src/main/resources/templates/user_register_confirm.html @@ -1,5 +1,5 @@ - +新規会員登録確認 From e40c64c2a950841c1b5843f85329b4c7c5857252 Mon Sep 17 00:00:00 2001 From: n-kawahito Date: Fri, 18 Sep 2026 09:46:13 +0900 Subject: [PATCH 05/12] =?UTF-8?q?[FIX]=E3=83=97=E3=83=83=E3=82=B7=E3=83=A5?= =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=AE=E3=81=9F=E3=82=81=E3=80=81?= =?UTF-8?q?=E3=82=B3=E3=83=9F=E3=83=83=E3=83=88=E3=83=AA=E3=82=BB=E3=83=83?= =?UTF-8?q?=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AnalysisServiceImpl.java | 4 +- .../demo/app/infra/entity/CourseEntity.java | 5 -- .../repository/AllocationRepository.java | 2 +- .../app/infra/repository/GoalRepository.java | 11 ++++ .../app/infra/repository/UserRepository.java | 1 + .../controller/AnalysisController.java | 15 +++--- .../controller/CourseController.java | 52 +++++++++++++++++++ src/main/resources/templates/analysis.html | 20 +++---- .../resources/templates/select_course.html | 35 +++++++++++++ 9 files changed, 118 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/example/demo/app/infra/repository/GoalRepository.java create mode 100644 src/main/java/com/example/demo/app/presentation/controller/CourseController.java create mode 100644 src/main/resources/templates/select_course.html diff --git a/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java index d0f3388..0764d41 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/AnalysisServiceImpl.java @@ -33,7 +33,9 @@ public class AnalysisServiceImpl implements AnalysisService { public AnalysisModel getAnalysis(Long userId) { // ユーザー情報取得、月別使用可能資金取得 - UserEntity userEntity = userRepository.findById(userId).orElseThrow(); + UserEntity userEntity = userRepository.findById(userId).orElseThrow(() -> + new RuntimeException( + "User not found.")); // コースID取得 Long courseId = userEntity.getCourseEntity().getCourseId(); 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 3afec50..fc66343 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 @@ -8,7 +8,6 @@ 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 com.example.demo.app.domain.model.CourseModel; @@ -39,10 +38,6 @@ public class CourseEntity { @OneToMany(mappedBy = "courseEntity") private List userEntity; - @OneToOne(mappedBy = "courseEntity") - private AllocationEntity allocationEntity; - - public static List createCourseModelList(List courseEntityList) { return courseEntityList diff --git a/src/main/java/com/example/demo/app/infra/repository/AllocationRepository.java b/src/main/java/com/example/demo/app/infra/repository/AllocationRepository.java index 5dc0ece..28656c2 100644 --- a/src/main/java/com/example/demo/app/infra/repository/AllocationRepository.java +++ b/src/main/java/com/example/demo/app/infra/repository/AllocationRepository.java @@ -28,5 +28,5 @@ public interface AllocationRepository extends JpaRepository findAllJoinedAllocation(); - + } diff --git a/src/main/java/com/example/demo/app/infra/repository/GoalRepository.java b/src/main/java/com/example/demo/app/infra/repository/GoalRepository.java new file mode 100644 index 0000000..c66aa15 --- /dev/null +++ b/src/main/java/com/example/demo/app/infra/repository/GoalRepository.java @@ -0,0 +1,11 @@ +package com.example.demo.app.infra.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import com.example.demo.app.infra.entity.GoalEntity; + +@Repository +public interface GoalRepository extends JpaRepository { + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/app/infra/repository/UserRepository.java b/src/main/java/com/example/demo/app/infra/repository/UserRepository.java index 239dba4..868dd8a 100644 --- a/src/main/java/com/example/demo/app/infra/repository/UserRepository.java +++ b/src/main/java/com/example/demo/app/infra/repository/UserRepository.java @@ -16,5 +16,6 @@ public interface UserRepository extends JpaRepository { String mailAddress, String password); + Optional findByMailAddress(String mailAddress); } diff --git a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java index 5bc8cd9..6b48a58 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java @@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.GetMapping; import com.example.demo.app.domain.model.AnalysisModel; import com.example.demo.app.domain.model.LoginModel; import com.example.demo.app.domain.service.AnalysisService; -import com.example.demo.app.presentation.form.AnalysisForm; import lombok.RequiredArgsConstructor; @@ -24,15 +23,15 @@ public class AnalysisController { public String showAnalysis(Model model, HttpSession session) { //ログインユーザーの取得(セッション) - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); - + LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + //分析結果の取得(Service) - AnalysisModel analysisModel = analysisService.getAnalysis(loginUser.getUserId()); - - AnalysisForm analysisForm = AnalysisForm.convertFrom(analysisModel); - + AnalysisModel analysisModel = analysisService.getAnalysis(loginUser.getUserId()); + + AnalysisForm analysisForm = AnalysisForm.convertFrom(analysisModel); + //model格納 - model.addAttribute("analysisForm", analysisForm); + model.addAttribute("analysisForm", analysisForm); return "analysis"; } diff --git a/src/main/java/com/example/demo/app/presentation/controller/CourseController.java b/src/main/java/com/example/demo/app/presentation/controller/CourseController.java new file mode 100644 index 0000000..ff520ae --- /dev/null +++ b/src/main/java/com/example/demo/app/presentation/controller/CourseController.java @@ -0,0 +1,52 @@ +package com.example.demo.app.presentation.controller; + +import java.util.logging.Logger; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; + +import com.example.demo.app.domain.service.CourseInfoService; +import com.example.demo.app.domain.service.CourseService; +import com.example.demo.app.presentation.form.CourseForm; +import com.example.demo.app.presentation.form.CourseInfoForm; + +import lombok.RequiredArgsConstructor; + + +@Controller +@RequiredArgsConstructor +public class CourseController { + + private final static Logger LOGGER = Logger.getLogger(CourseController.class.getName()); + // エラーメッセージ用の定数フィールド + private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; + + // private final HttpSession httpSession; + private final CourseService courseService; + private final CourseInfoService courseInfoService; + + + + @GetMapping("/select-course") + public String select(Model model) { + + //try { + model.addAttribute("courseList", CourseForm.convertFrom(courseService.findAll())); + model.addAttribute("courseInfoList", CourseInfoForm.convertFrom(courseInfoService.findAll())); + + return "select_course"; + + //} catch (Exception e) { +// // ログイン情報の破棄 +// httpSession.invalidate(); +// +// e.printStackTrace(); +// +// // エラーログ出力 +// LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); +// // エラー画面遷移 +// return null; +// } + } +} diff --git a/src/main/resources/templates/analysis.html b/src/main/resources/templates/analysis.html index 55201dd..87fbc0f 100644 --- a/src/main/resources/templates/analysis.html +++ b/src/main/resources/templates/analysis.html @@ -12,7 +12,7 @@
カテゴリ別 支出 前月比
@@ -42,11 +42,7 @@
カテゴリ別 支出 - 前月比 -
- コース比 -
前月比
コース比

diff --git a/src/main/resources/templates/password_reset.html b/src/main/resources/templates/password_reset.html deleted file mode 100644 index 522fd4b..0000000 --- a/src/main/resources/templates/password_reset.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - -パスワード再設定 - - -
- -
-

パスワード再設定

- -
-
- - -
- -
- - -
- - -
- -
-

-
-
- - \ No newline at end of file diff --git a/src/main/resources/templates/select_course.html b/src/main/resources/templates/select_course.html index 6718ef4..bd50a1e 100644 --- a/src/main/resources/templates/select_course.html +++ b/src/main/resources/templates/select_course.html @@ -20,7 +20,7 @@
カテゴリ名
- + @@ -24,8 +24,8 @@ 0 - + @@ -63,16 +59,16 @@
カテゴリ別 支出 前月比
@@ -42,11 +42,7 @@
カテゴリ別 支出 - 前月比 -
- コース比 -
前月比
コース比

diff --git a/src/main/resources/templates/select_course.html b/src/main/resources/templates/select_course.html new file mode 100644 index 0000000..bd50a1e --- /dev/null +++ b/src/main/resources/templates/select_course.html @@ -0,0 +1,35 @@ + + + + +コース選択 + + + +
+
+

+ +

+
+
+ + + + 配分(%) + + + + + +
カテゴリ名
+
+
+
+
+ + + + \ No newline at end of file From abe5573c8803673a94efd83e7cd16a0a017e1a77 Mon Sep 17 00:00:00 2001 From: n-kawahito Date: Fri, 18 Sep 2026 09:53:53 +0900 Subject: [PATCH 06/12] =?UTF-8?q?[ADD]=E6=94=AF=E5=87=BA=E5=88=86=E6=9E=90?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E3=81=AE=E3=81=9F=E3=82=81=E3=81=AEform?= =?UTF-8?q?=E3=82=AF=E3=83=A9=E3=82=B9=E3=82=92=E4=BD=9C=E6=88=90=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/AnalysisController.java | 1 + .../app/presentation/form/AnalysisForm.java | 35 ++++++++++++++ .../form/CategoryAnalysisForm.java | 47 +++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java create mode 100644 src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java diff --git a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java index 6b48a58..a3a745f 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.GetMapping; import com.example.demo.app.domain.model.AnalysisModel; import com.example.demo.app.domain.model.LoginModel; import com.example.demo.app.domain.service.AnalysisService; +import com.example.demo.app.presentation.form.AnalysisForm; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java b/src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java new file mode 100644 index 0000000..1594955 --- /dev/null +++ b/src/main/java/com/example/demo/app/presentation/form/AnalysisForm.java @@ -0,0 +1,35 @@ +package com.example.demo.app.presentation.form; + +import java.util.List; + +import com.example.demo.app.domain.model.AnalysisModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AnalysisForm { + + private Integer currentMonthTotalAmount; + + private Integer previousMonthTotalAmount; + + private Integer totalDifferenceAmount; + + private List + categoryAnalysisFormList; + + public static AnalysisForm convertFrom( + AnalysisModel analysisModel) { + + return new AnalysisForm( + analysisModel.getCurrentMonthTotalAmount(), + analysisModel.getPreviousMonthTotalAmount(), + analysisModel.getTotalDifferenceAmount(), + CategoryAnalysisForm.convertFrom( + analysisModel.getCategoryAnalysisModelList())); + } +} diff --git a/src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java b/src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java new file mode 100644 index 0000000..1b44353 --- /dev/null +++ b/src/main/java/com/example/demo/app/presentation/form/CategoryAnalysisForm.java @@ -0,0 +1,47 @@ +package com.example.demo.app.presentation.form; + +import java.util.List; + +import com.example.demo.app.domain.model.CategoryAnalysisModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CategoryAnalysisForm { + + private String categoryName; + + private Integer currentMonthAmount; + + private Integer previousMonthAmount; + + private Integer monthDifferenceAmount; + + private Integer courseLimitAmount; + + private Integer courseDifferenceAmount; + + public static CategoryAnalysisForm convertFrom( + CategoryAnalysisModel categoryAnalysisModel) { + + return new CategoryAnalysisForm( + categoryAnalysisModel.getCategoryName(), + categoryAnalysisModel.getCurrentMonthAmount(), + categoryAnalysisModel.getPreviousMonthAmount(), + categoryAnalysisModel.getMonthDifferenceAmount(), + categoryAnalysisModel.getCourseLimitAmount(), + categoryAnalysisModel.getCourseDifferenceAmount()); + } + + public static List convertFrom( + List categoryAnalysisModelList) { + + return categoryAnalysisModelList.stream() + .map(CategoryAnalysisForm::convertFrom) + .toList(); + } +} From b9e6b5662b94f4ae877b627f27a2070116be7fec Mon Sep 17 00:00:00 2001 From: kkazuya Date: Fri, 18 Sep 2026 10:53:53 +0900 Subject: [PATCH 07/12] =?UTF-8?q?[EDIT]=20=E3=82=B9=E3=83=9A=E3=83=BC?= =?UTF-8?q?=E3=82=B9=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/app/domain/service/impl/CourseServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java index a4dec5f..fa62a60 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/CourseServiceImpl.java @@ -18,6 +18,7 @@ public class CourseServiceImpl implements CourseService { private final CourseRepository courseRepository; public List findAll(){ + return CourseEntity.createCourseModelList(courseRepository.findAll()); } From 00b584372e7fdbee88d8dbac70855e5adead6697 Mon Sep 17 00:00:00 2001 From: kkazuya Date: Fri, 18 Sep 2026 10:57:07 +0900 Subject: [PATCH 08/12] [EDIT] // --- .../java/com/example/demo/app/domain/service/CourseService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/app/domain/service/CourseService.java b/src/main/java/com/example/demo/app/domain/service/CourseService.java index 4681860..bbf92f7 100644 --- a/src/main/java/com/example/demo/app/domain/service/CourseService.java +++ b/src/main/java/com/example/demo/app/domain/service/CourseService.java @@ -5,7 +5,7 @@ import java.util.List; import com.example.demo.app.domain.model.CourseModel; public interface CourseService { - + // public List findAll(); } From b062f64ea4c1130feaf67ccb5decb7d4f876dd09 Mon Sep 17 00:00:00 2001 From: kkazuya Date: Fri, 18 Sep 2026 10:59:01 +0900 Subject: [PATCH 09/12] [EDIT] /// --- .../com/example/demo/app/domain/service/CourseInfoService.java | 2 +- .../com/example/demo/app/presentation/form/CourseInfoForm.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java b/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java index 83cf4ab..2699f13 100644 --- a/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java +++ b/src/main/java/com/example/demo/app/domain/service/CourseInfoService.java @@ -5,6 +5,6 @@ import java.util.List; import com.example.demo.app.domain.model.CourseInfoModel; public interface CourseInfoService { - + // public List findAll(); } diff --git a/src/main/java/com/example/demo/app/presentation/form/CourseInfoForm.java b/src/main/java/com/example/demo/app/presentation/form/CourseInfoForm.java index addce2f..e034917 100644 --- a/src/main/java/com/example/demo/app/presentation/form/CourseInfoForm.java +++ b/src/main/java/com/example/demo/app/presentation/form/CourseInfoForm.java @@ -25,7 +25,7 @@ public class CourseInfoForm { public static CourseInfoForm convertFrom(CourseInfoModel courseInfoModel ) { - return new CourseInfoForm(courseInfoModel.getCategoryId(), courseInfoModel.getCourseName(), courseInfoModel.getCategoryId(), courseInfoModel.getCategoryName(), courseInfoModel.getAllocationRatio()); + return new CourseInfoForm(courseInfoModel.getCourseId(), courseInfoModel.getCourseName(), courseInfoModel.getCategoryId(), courseInfoModel.getCategoryName(), courseInfoModel.getAllocationRatio()); } public static List convertFrom(List courseInfoModelList ) { From f955667682040961a972b0107053018dccd41543 Mon Sep 17 00:00:00 2001 From: kkazuya Date: Fri, 18 Sep 2026 11:00:02 +0900 Subject: [PATCH 10/12] =?UTF-8?q?[ADD]=20=E3=81=84=E3=82=8D=E3=81=84?= =?UTF-8?q?=E3=82=8D=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/domain/model/AuthenticationModel.java | 10 ++++ .../demo/app/domain/model/GoalModel.java | 24 ++++++++ .../demo/app/domain/model/UserModel.java | 7 +-- .../app/domain/service/AllocationService.java | 11 ++++ .../domain/service/AuthenticationService.java | 9 +++ .../service/impl/AllocationServiceImpl.java | 24 ++++++++ .../impl/AuthenticationServiceImpl.java | 42 ++++++++++++++ .../controller/AuthenticationController.java | 56 +++++++++++++++++++ .../app/presentation/form/AllocationForm.java | 28 ++++++++++ .../presentation/form/AuthenticationForm.java | 14 +++++ .../resources/templates/Authentication.html | 53 ++++++++++++++++++ 11 files changed, 274 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/example/demo/app/domain/model/AuthenticationModel.java create mode 100644 src/main/java/com/example/demo/app/domain/model/GoalModel.java create mode 100644 src/main/java/com/example/demo/app/domain/service/AllocationService.java create mode 100644 src/main/java/com/example/demo/app/domain/service/AuthenticationService.java create mode 100644 src/main/java/com/example/demo/app/domain/service/impl/AllocationServiceImpl.java create mode 100644 src/main/java/com/example/demo/app/domain/service/impl/AuthenticationServiceImpl.java create mode 100644 src/main/java/com/example/demo/app/presentation/controller/AuthenticationController.java create mode 100644 src/main/java/com/example/demo/app/presentation/form/AllocationForm.java create mode 100644 src/main/java/com/example/demo/app/presentation/form/AuthenticationForm.java create mode 100644 src/main/resources/templates/Authentication.html diff --git a/src/main/java/com/example/demo/app/domain/model/AuthenticationModel.java b/src/main/java/com/example/demo/app/domain/model/AuthenticationModel.java new file mode 100644 index 0000000..ec8db4b --- /dev/null +++ b/src/main/java/com/example/demo/app/domain/model/AuthenticationModel.java @@ -0,0 +1,10 @@ +package com.example.demo.app.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class AuthenticationModel { + private Long userId; +} diff --git a/src/main/java/com/example/demo/app/domain/model/GoalModel.java b/src/main/java/com/example/demo/app/domain/model/GoalModel.java new file mode 100644 index 0000000..7764281 --- /dev/null +++ b/src/main/java/com/example/demo/app/domain/model/GoalModel.java @@ -0,0 +1,24 @@ +package com.example.demo.app.domain.model; + +import java.time.LocalDate; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class GoalModel { + + private Long goalId; + + private String goalTitle; + + private String goalSubtitle; + + private Integer targetAmount; + + private LocalDate deadline; + + private Integer goalComplete; + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/app/domain/model/UserModel.java b/src/main/java/com/example/demo/app/domain/model/UserModel.java index bb34609..1f79b0c 100644 --- a/src/main/java/com/example/demo/app/domain/model/UserModel.java +++ b/src/main/java/com/example/demo/app/domain/model/UserModel.java @@ -8,10 +8,9 @@ import lombok.Getter; @Getter @AllArgsConstructor public class UserModel { - private Long userId; private String userName; - private String emailAddress; + private String mailAddress; private String password; private Integer secretQuestionId; private String secretAnswer; @@ -19,7 +18,7 @@ public class UserModel { private Integer saving; private Integer annualIncome; private Integer monthlyBudget; - private Integer goalId; - private Integer courseId; + private Long goalId; + private Long courseId; private Integer deleteFlag; } diff --git a/src/main/java/com/example/demo/app/domain/service/AllocationService.java b/src/main/java/com/example/demo/app/domain/service/AllocationService.java new file mode 100644 index 0000000..240c1fd --- /dev/null +++ b/src/main/java/com/example/demo/app/domain/service/AllocationService.java @@ -0,0 +1,11 @@ +package com.example.demo.app.domain.service; + +import java.util.List; + +import com.example.demo.app.domain.model.AllocationModel; + +public interface AllocationService { + + public List findAll(); + +} diff --git a/src/main/java/com/example/demo/app/domain/service/AuthenticationService.java b/src/main/java/com/example/demo/app/domain/service/AuthenticationService.java new file mode 100644 index 0000000..824c752 --- /dev/null +++ b/src/main/java/com/example/demo/app/domain/service/AuthenticationService.java @@ -0,0 +1,9 @@ +package com.example.demo.app.domain.service; + +import com.example.demo.app.domain.model.AuthenticationModel; +import com.example.demo.app.presentation.form.AuthenticationForm; + +public interface AuthenticationService { + + AuthenticationModel authenticate(AuthenticationForm authenticationForm); +} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/AllocationServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/AllocationServiceImpl.java new file mode 100644 index 0000000..fa287d4 --- /dev/null +++ b/src/main/java/com/example/demo/app/domain/service/impl/AllocationServiceImpl.java @@ -0,0 +1,24 @@ +package com.example.demo.app.domain.service.impl; + +import java.util.List; + +import org.springframework.stereotype.Service; + +import com.example.demo.app.domain.model.AllocationModel; +import com.example.demo.app.domain.service.AllocationService; +import com.example.demo.app.infra.entity.AllocationEntity; +import com.example.demo.app.infra.repository.AllocationRepository; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class AllocationServiceImpl implements AllocationService { + + AllocationRepository allocationRepository; + + public List findAll(){ + return AllocationEntity.createAllocationModelList(allocationRepository.findAll()); + } + +} diff --git a/src/main/java/com/example/demo/app/domain/service/impl/AuthenticationServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/AuthenticationServiceImpl.java new file mode 100644 index 0000000..89ac9f4 --- /dev/null +++ b/src/main/java/com/example/demo/app/domain/service/impl/AuthenticationServiceImpl.java @@ -0,0 +1,42 @@ +package com.example.demo.app.domain.service.impl; + +import org.springframework.stereotype.Service; + +import com.example.demo.app.domain.model.AuthenticationModel; +import com.example.demo.app.domain.service.AuthenticationService; +import com.example.demo.app.infra.entity.UserEntity; +import com.example.demo.app.infra.repository.UserRepository; +import com.example.demo.app.presentation.form.AuthenticationForm; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class AuthenticationServiceImpl implements AuthenticationService { + + private final UserRepository userRepository; + + @Override + public AuthenticationModel authenticate(AuthenticationForm authenticationForm) { + + UserEntity userEntity = userRepository.findByMailAddress( + authenticationForm.getMailAddress()) + .orElse(null); + + if (userEntity == null) { + return null; + } + + if (!userEntity.getQuestionEntity().getSecretQuestionId() + .equals(authenticationForm.getSecretQuestionId())) { + return null; + } + + if (!userEntity.getSecretQuestionAnswer() + .equals(authenticationForm.getSecretAnswer())) { + return null; + } + + return new AuthenticationModel(userEntity.getUserId()); + } +} diff --git a/src/main/java/com/example/demo/app/presentation/controller/AuthenticationController.java b/src/main/java/com/example/demo/app/presentation/controller/AuthenticationController.java new file mode 100644 index 0000000..5cf8569 --- /dev/null +++ b/src/main/java/com/example/demo/app/presentation/controller/AuthenticationController.java @@ -0,0 +1,56 @@ +package com.example.demo.app.presentation.controller; + +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.PostMapping; + +import com.example.demo.app.domain.model.AuthenticationModel; +import com.example.demo.app.domain.service.AuthenticationService; +import com.example.demo.app.infra.repository.QuestionRepository; +import com.example.demo.app.presentation.form.AuthenticationForm; + +import lombok.RequiredArgsConstructor; + +@Controller +@RequiredArgsConstructor +public class AuthenticationController { + + private final AuthenticationService authenticationService; + private final QuestionRepository questionRepository; + + @GetMapping("/authentication") + public String showAuthentication(Model model) { + + model.addAttribute("authenticationForm", new AuthenticationForm()); + model.addAttribute("questionList", questionRepository.findAll()); + + return "authentication"; + } + + @PostMapping("/authentication") + public String authenticate( + AuthenticationForm authenticationForm, + Model model, + HttpSession session) { + + AuthenticationModel authenticationModel = + authenticationService.authenticate(authenticationForm); + + if (authenticationModel == null) { + model.addAttribute("errorMessage", "認証情報が正しくありません。"); + model.addAttribute("questionList", questionRepository.findAll()); + + return "authentication"; + } + + session.setAttribute( + "passwordResetUserId", + authenticationModel.getUserId()); + + return "password_reset"; + + } +} diff --git a/src/main/java/com/example/demo/app/presentation/form/AllocationForm.java b/src/main/java/com/example/demo/app/presentation/form/AllocationForm.java new file mode 100644 index 0000000..6c28c9b --- /dev/null +++ b/src/main/java/com/example/demo/app/presentation/form/AllocationForm.java @@ -0,0 +1,28 @@ +package com.example.demo.app.presentation.form; + +import java.util.List; + +import com.example.demo.app.domain.model.AllocationModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AllocationForm { + + private Long categoryId; + private Long courseId; + private Integer allocationRatio; + + public static AllocationForm convertFrom(AllocationModel allocationModel) { + return new AllocationForm(allocationModel.getCategoryId(), allocationModel.getCourseId(), allocationModel.getAllocationRatio()); + } + + public static List convertFrom(List allocationModelList){ + return allocationModelList.stream().map(AllocationForm::convertFrom).toList(); + } + +} diff --git a/src/main/java/com/example/demo/app/presentation/form/AuthenticationForm.java b/src/main/java/com/example/demo/app/presentation/form/AuthenticationForm.java new file mode 100644 index 0000000..2c27a5d --- /dev/null +++ b/src/main/java/com/example/demo/app/presentation/form/AuthenticationForm.java @@ -0,0 +1,14 @@ +package com.example.demo.app.presentation.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AuthenticationForm { + private String mailAddress; + private Integer secretQuestionId; + private String secretAnswer; +} diff --git a/src/main/resources/templates/Authentication.html b/src/main/resources/templates/Authentication.html new file mode 100644 index 0000000..336b3cc --- /dev/null +++ b/src/main/resources/templates/Authentication.html @@ -0,0 +1,53 @@ + + + + + + 認証 + + + +
+

本人認証確認

+ +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + + +
+ +
+ +
+
+ + + + + + \ No newline at end of file From 055855531558beb3d8bd2df50aa034621ca2cbd0 Mon Sep 17 00:00:00 2001 From: n-kawahito Date: Fri, 18 Sep 2026 11:18:48 +0900 Subject: [PATCH 11/12] =?UTF-8?q?[ADD]=E3=83=98=E3=83=83=E3=83=80=E3=83=BC?= =?UTF-8?q?=E3=81=AE=E6=A9=9F=E8=83=BD=E7=94=BB=E9=9D=A2=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/templates/header.html | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/main/resources/templates/header.html diff --git a/src/main/resources/templates/header.html b/src/main/resources/templates/header.html new file mode 100644 index 0000000..29aac43 --- /dev/null +++ b/src/main/resources/templates/header.html @@ -0,0 +1,29 @@ + + + + +ヘッダー + + + + +
+ + + +
+ + + \ No newline at end of file From 2e427c8189d70b646efda6c6a22953e352aa6627 Mon Sep 17 00:00:00 2001 From: n-kawahito Date: Fri, 18 Sep 2026 11:19:11 +0900 Subject: [PATCH 12/12] =?UTF-8?q?[EDIT]=E3=83=98=E3=83=83=E3=83=80?= =?UTF-8?q?=E3=83=BC=E3=81=AE=E8=AA=AD=E3=81=BF=E8=BE=BC=E3=81=BF=E3=82=B3?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=BE?= =?UTF-8?q?=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/templates/analysis.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/resources/templates/analysis.html b/src/main/resources/templates/analysis.html index 87fbc0f..22b1075 100644 --- a/src/main/resources/templates/analysis.html +++ b/src/main/resources/templates/analysis.html @@ -1,12 +1,15 @@ - + 分析画面 +
+
+

支出分析