From e40c64c2a950841c1b5843f85329b4c7c5857252 Mon Sep 17 00:00:00 2001 From: n-kawahito Date: Fri, 18 Sep 2026 09:46:13 +0900 Subject: [PATCH] =?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 @@ - + @@ -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