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(); + } +} 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/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/CourseEntity.java b/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java index 995ac6b..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,18 +6,19 @@ 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; import lombok.Data; import lombok.NoArgsConstructor; @Entity -@Table(name = "course") +@Table(name = "course_m") @Data @NoArgsConstructor @AllArgsConstructor @@ -39,6 +40,18 @@ public class CourseEntity { private List userEntity; @OneToOne(mappedBy = "courseEntity") - private List allocationEntity; + private AllocationEntity allocationEntity; + + + public static List createCourseModelList(List courseEntityList) { + + return courseEntityList + .stream() + .map(courseEntity -> new CourseModel( + courseEntity.getCourseId(), + courseEntity.getCourseName(), + courseEntity.getDescription() + )).toList(); + } } 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..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 @@ -15,7 +15,7 @@ import lombok.Data; import lombok.NoArgsConstructor; @Entity -@Table(name = "question") +@Table(name = "question_m") @Data @NoArgsConstructor @AllArgsConstructor @@ -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; } 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 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 df6d8f6..8817122 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 @@ -3,10 +3,28 @@ package com.example.demo.app.infra.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import com.example.demo.app.domain.model.CourseInfoModel; import com.example.demo.app.infra.entity.AllocationEntity; public interface AllocationRepository extends JpaRepository{ List findByCourseId(Long courseId); + + @Query(" SELECT co.course_id, " + + " co.course_name, " + + " ca.category_id, " + + " ca.categpry_name, " + + " a.allocation_ratio " + + " FROM allocation_m a " + + " INNER JOIN course_m co " + + " ON a.course_id = co.course_id " + + " INNER JOIN category_t ca " + + " on a.category_id = ca.category_id " + + " WHERE ca.transaction_type = 0 " + + " ORDER BY a.course_id ASC, " + + " a.category_id ASC ") + List findAllJoinedAllocation(); + } 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"; } // 詳細画面