From 7264864bf38d5d697c5e89114c66a5882b298764 Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Fri, 21 Nov 2025 17:36:33 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AA=A8=EB=8D=B8=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=EA=B5=AC=EC=A1=B0=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=BB=A4=EB=B0=8B,=20=EB=A1=9C=EA=B7=B8=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kamcoback/common/enums/DeployStatus.java | 25 ++++++++ .../common/enums/InferenceStatus.java | 24 ++++++++ .../cd/kamcoback/common/enums/UseType.java | 24 ++++++++ .../kamcoback/log/AuditLogApiController.java | 17 +++--- .../kamcoback/log/ErrorLogApiController.java | 5 +- .../log/service/AuditLogService.java | 49 +++++++++++++++ .../log/service/ErrorLogService.java | 19 ++++++ .../model/ModelMngApiController.java | 46 +++++++++++++++ .../cd/kamcoback/model/dto/ModelMngDto.java | 59 +++++++++++++++++++ .../model/service/ModelMngService.java | 22 +++++++ .../postgres/core/ModelMngCoreService.java | 22 +++++++ .../postgres/entity/ModelMngEntity.java | 30 ++++++---- .../postgres/entity/TbModelVerEntity.java | 15 ++--- .../repository/model/ModelMngRepository.java | 6 ++ .../model/ModelMngRepositoryCustom.java | 11 ++++ .../model/ModelMngRepositoryImpl.java | 37 ++++++++++++ 16 files changed, 380 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/kamco/cd/kamcoback/common/enums/DeployStatus.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/common/enums/InferenceStatus.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/common/enums/UseType.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/log/service/AuditLogService.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/log/service/ErrorLogService.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/model/ModelMngApiController.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/core/ModelMngCoreService.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepository.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepositoryCustom.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepositoryImpl.java diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/DeployStatus.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/DeployStatus.java new file mode 100644 index 00000000..18efb6ba --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/DeployStatus.java @@ -0,0 +1,25 @@ +package com.kamco.cd.kamcoback.common.enums; + +import com.kamco.cd.kamcoback.config.enums.EnumType; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum DeployStatus implements EnumType { + NONE("미배포"), + FAILED("배포오류"), + COMPLETE("배포완료"); + + private final String desc; + + @Override + public String getId() { + return name(); + } + + @Override + public String getText() { + return desc; + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/InferenceStatus.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/InferenceStatus.java new file mode 100644 index 00000000..89899d3d --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/InferenceStatus.java @@ -0,0 +1,24 @@ +package com.kamco.cd.kamcoback.common.enums; + +import com.kamco.cd.kamcoback.config.enums.EnumType; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum InferenceStatus implements EnumType { + ING("분석중"), + COMPLETE("완료"); + + private final String desc; + + @Override + public String getId() { + return name(); + } + + @Override + public String getText() { + return desc; + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/UseType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/UseType.java new file mode 100644 index 00000000..7ffee739 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/UseType.java @@ -0,0 +1,24 @@ +package com.kamco.cd.kamcoback.common.enums; + +import com.kamco.cd.kamcoback.config.enums.EnumType; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum UseType implements EnumType { + USED("사용"), + NONE("미사용"); + + private final String desc; + + @Override + public String getId() { + return name(); + } + + @Override + public String getText() { + return desc; + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/log/AuditLogApiController.java b/src/main/java/com/kamco/cd/kamcoback/log/AuditLogApiController.java index 29362226..ffd02825 100644 --- a/src/main/java/com/kamco/cd/kamcoback/log/AuditLogApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/log/AuditLogApiController.java @@ -2,6 +2,7 @@ package com.kamco.cd.kamcoback.log; import com.kamco.cd.kamcoback.config.api.ApiResponseDto; import com.kamco.cd.kamcoback.log.dto.AuditLogDto; +import com.kamco.cd.kamcoback.log.service.AuditLogService; import com.kamco.cd.kamcoback.postgres.core.AuditLogCoreService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -16,10 +17,10 @@ import org.springframework.web.bind.annotation.RestController; @Tag(name = "감사 로그", description = "감사 로그 관리 API") @RequiredArgsConstructor @RestController -@RequestMapping({"/api/log/audit"}) +@RequestMapping("/api/log/audit") public class AuditLogApiController { - private final AuditLogCoreService auditLogCoreService; + private final AuditLogService auditLogService; @Operation(summary = "일자별 로그 조회") @GetMapping("/daily") @@ -32,7 +33,7 @@ public class AuditLogApiController { new AuditLogDto.searchReq(page, size, "created_dttm,desc"); Page result = - auditLogCoreService.getLogByDaily(searchReq, startDate, endDate); + auditLogService.getLogByDaily(searchReq, startDate, endDate); return ApiResponseDto.ok(result); } @@ -46,7 +47,7 @@ public class AuditLogApiController { AuditLogDto.searchReq searchReq = new AuditLogDto.searchReq(page, size, "created_dttm,desc"); Page result = - auditLogCoreService.getLogByDailyResult(searchReq, logDate); + auditLogService.getLogByDailyResult(searchReq, logDate); return ApiResponseDto.ok(result); } @@ -59,7 +60,7 @@ public class AuditLogApiController { @RequestParam(defaultValue = "20") int size) { AuditLogDto.searchReq searchReq = new AuditLogDto.searchReq(page, size, "created_dttm,desc"); - Page result = auditLogCoreService.getLogByMenu(searchReq, searchValue); + Page result = auditLogService.getLogByMenu(searchReq, searchValue); return ApiResponseDto.ok(result); } @@ -73,7 +74,7 @@ public class AuditLogApiController { AuditLogDto.searchReq searchReq = new AuditLogDto.searchReq(page, size, "created_dttm,desc"); Page result = - auditLogCoreService.getLogByMenuResult(searchReq, menuId); + auditLogService.getLogByMenuResult(searchReq, menuId); return ApiResponseDto.ok(result); } @@ -87,7 +88,7 @@ public class AuditLogApiController { AuditLogDto.searchReq searchReq = new AuditLogDto.searchReq(page, size, "created_dttm,desc"); Page result = - auditLogCoreService.getLogByAccount(searchReq, searchValue); + auditLogService.getLogByAccount(searchReq, searchValue); return ApiResponseDto.ok(result); } @@ -101,7 +102,7 @@ public class AuditLogApiController { AuditLogDto.searchReq searchReq = new AuditLogDto.searchReq(page, size, "created_dttm,desc"); Page result = - auditLogCoreService.getLogByAccountResult(searchReq, userUid); + auditLogService.getLogByAccountResult(searchReq, userUid); return ApiResponseDto.ok(result); } diff --git a/src/main/java/com/kamco/cd/kamcoback/log/ErrorLogApiController.java b/src/main/java/com/kamco/cd/kamcoback/log/ErrorLogApiController.java index c75d4fc6..3a7fe66d 100644 --- a/src/main/java/com/kamco/cd/kamcoback/log/ErrorLogApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/log/ErrorLogApiController.java @@ -3,6 +3,7 @@ package com.kamco.cd.kamcoback.log; import com.kamco.cd.kamcoback.config.api.ApiResponseDto; import com.kamco.cd.kamcoback.log.dto.ErrorLogDto; import com.kamco.cd.kamcoback.log.dto.EventType; +import com.kamco.cd.kamcoback.log.service.ErrorLogService; import com.kamco.cd.kamcoback.postgres.core.ErrorLogCoreService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -20,7 +21,7 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping({"/api/log/error"}) public class ErrorLogApiController { - private final ErrorLogCoreService errorLogCoreService; + private final ErrorLogService errorLogService; @Operation(summary = "에러로그 조회") @GetMapping("/error") @@ -34,7 +35,7 @@ public class ErrorLogApiController { ErrorLogDto.ErrorSearchReq searchReq = new ErrorLogDto.ErrorSearchReq( logErrorLevel, eventType, startDate, endDate, page, size, "created_dttm,desc"); - Page result = errorLogCoreService.findLogByError(searchReq); + Page result = errorLogService.findLogByError(searchReq); return ApiResponseDto.ok(result); } diff --git a/src/main/java/com/kamco/cd/kamcoback/log/service/AuditLogService.java b/src/main/java/com/kamco/cd/kamcoback/log/service/AuditLogService.java new file mode 100644 index 00000000..c2f591c9 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/log/service/AuditLogService.java @@ -0,0 +1,49 @@ +package com.kamco.cd.kamcoback.log.service; + +import com.kamco.cd.kamcoback.log.dto.AuditLogDto; +import com.kamco.cd.kamcoback.postgres.core.AuditLogCoreService; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) +public class AuditLogService { + private final AuditLogCoreService auditLogCoreService; + + public Page getLogByDaily( + AuditLogDto.searchReq searchRange, LocalDate startDate, LocalDate endDate) { + return auditLogCoreService.getLogByDaily(searchRange, startDate, endDate); + } + + public Page getLogByMenu( + AuditLogDto.searchReq searchRange, String searchValue) { + return auditLogCoreService.getLogByMenu(searchRange, searchValue); + } + + public Page getLogByAccount( + AuditLogDto.searchReq searchRange, String searchValue) { + return auditLogCoreService.getLogByAccount(searchRange, searchValue); + } + + public Page getLogByDailyResult( + AuditLogDto.searchReq searchRange, LocalDate logDate) { + return auditLogCoreService.getLogByDailyResult(searchRange, logDate); + } + + public Page getLogByMenuResult( + AuditLogDto.searchReq searchRange, String menuId) { + return auditLogCoreService.getLogByMenuResult(searchRange, menuId); + } + + public Page getLogByAccountResult( + AuditLogDto.searchReq searchRange, Long accountId) { + return auditLogCoreService.getLogByAccountResult(searchRange, accountId); + } + + +} diff --git a/src/main/java/com/kamco/cd/kamcoback/log/service/ErrorLogService.java b/src/main/java/com/kamco/cd/kamcoback/log/service/ErrorLogService.java new file mode 100644 index 00000000..edad212f --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/log/service/ErrorLogService.java @@ -0,0 +1,19 @@ +package com.kamco.cd.kamcoback.log.service; + +import com.kamco.cd.kamcoback.log.dto.ErrorLogDto; +import com.kamco.cd.kamcoback.postgres.core.ErrorLogCoreService; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) +public class ErrorLogService { + private final ErrorLogCoreService errorLogCoreService; + + public Page findLogByError(ErrorLogDto.ErrorSearchReq searchReq) { + return errorLogCoreService.findLogByError(searchReq); + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/model/ModelMngApiController.java b/src/main/java/com/kamco/cd/kamcoback/model/ModelMngApiController.java new file mode 100644 index 00000000..15875449 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/model/ModelMngApiController.java @@ -0,0 +1,46 @@ +package com.kamco.cd.kamcoback.model; + +import com.kamco.cd.kamcoback.code.dto.CommonCodeDto; +import com.kamco.cd.kamcoback.config.api.ApiResponseDto; +import com.kamco.cd.kamcoback.model.dto.ModelMngDto; +import com.kamco.cd.kamcoback.model.service.ModelMngService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@Tag(name = "모델 관리", description = "모델 관리 API") +@RequiredArgsConstructor +@RestController +@RequestMapping("/api/model") +public class ModelMngApiController { + + private final ModelMngService modelMngService; + + @Operation(summary = "목록 조회", description = "모든 모델 조회") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = CommonCodeDto.Basic.class))), + @ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping + public ApiResponseDto> getFindAll() { + return ApiResponseDto.createOK(modelMngService.findModelMngAll()); + } + +} diff --git a/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java b/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java new file mode 100644 index 00000000..451f2fad --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java @@ -0,0 +1,59 @@ +package com.kamco.cd.kamcoback.model.dto; + +import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; + +import java.time.ZonedDateTime; + +public class ModelMngDto { + + @Schema(name = "ModelMng Basic", description = "모델관리 엔티티 기본 정보") + @Getter + public static class Basic { + + private final Long id; + private final String modelNm; + private final String modelCate; + private final String modelPath; + + @JsonFormatDttm + private final ZonedDateTime createdDttm; + private final Long createdUid; + + @JsonFormatDttm + private final ZonedDateTime updatedDttm; + private final Long updatedUid; + private final String modelCntnt; + + public Basic( + Long id, + String modelNm, + String modelCate, + String modelPath, + ZonedDateTime createdDttm, + Long createdUid, + ZonedDateTime updatedDttm, + Long updatedUid, + String modelCntnt + ) { + this.id = id; + this.modelNm = modelNm; + this.modelCate = modelCate; + this.modelPath = modelPath; + this.createdDttm = createdDttm; + this.createdUid = createdUid; + this.updatedDttm = updatedDttm; + this.updatedUid = updatedUid; + this.modelCntnt = modelCntnt; + } + } + + @Schema(name = "FinalModelDto", description = "최종 등록 모델") + @Getter + public static class FinalModelDto { + private String modelNm; + private String modelCate; + private String modelVer; + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java b/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java new file mode 100644 index 00000000..f74b5fa2 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java @@ -0,0 +1,22 @@ +package com.kamco.cd.kamcoback.model.service; + +import com.kamco.cd.kamcoback.model.dto.ModelMngDto; +import com.kamco.cd.kamcoback.postgres.core.ModelMngCoreService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) +public class ModelMngService { + + private final ModelMngCoreService modelMngCoreService; + + public List findModelMngAll(){ + return modelMngCoreService.findModelMngAll(); + } + +} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/ModelMngCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/ModelMngCoreService.java new file mode 100644 index 00000000..549e3689 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/ModelMngCoreService.java @@ -0,0 +1,22 @@ +package com.kamco.cd.kamcoback.postgres.core; + +import com.kamco.cd.kamcoback.model.dto.ModelMngDto; +import com.kamco.cd.kamcoback.postgres.entity.ModelMngEntity; +import com.kamco.cd.kamcoback.postgres.repository.model.ModelMngRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) +public class ModelMngCoreService { + + private final ModelMngRepository modelMngRepository; + + public List findModelMngAll() { + return modelMngRepository.findModelMngAll().stream().map(ModelMngEntity::toDto).toList(); + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/ModelMngEntity.java b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/ModelMngEntity.java index 26149b11..f24529dc 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/ModelMngEntity.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/ModelMngEntity.java @@ -1,18 +1,14 @@ package com.kamco.cd.kamcoback.postgres.entity; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.SequenceGenerator; -import jakarta.persistence.Table; +import com.kamco.cd.kamcoback.model.dto.ModelMngDto; +import jakarta.persistence.*; import jakarta.validation.constraints.Size; -import java.time.Instant; import lombok.Getter; import lombok.Setter; import org.hibernate.annotations.ColumnDefault; +import java.time.ZonedDateTime; + @Getter @Setter @Entity @@ -41,18 +37,30 @@ public class ModelMngEntity { private String modelPath; @Column(name = "created_dttm") - private Instant createdDttm; + private ZonedDateTime createdDttm; @Column(name = "created_uid") private Long createdUid; @Column(name = "updated_dttm") - private Instant updatedDttm; + private ZonedDateTime updatedDttm; @Column(name = "updated_uid") private Long updatedUid; - @Column(name = "model_cntnt", length = Integer.MAX_VALUE) + @Column(name = "model_cntnt", columnDefinition = "TEXT") private String modelCntnt; + public ModelMngDto.Basic toDto() { + return new ModelMngDto.Basic( + this.id, + this.modelNm, + this.modelCate, + this.modelPath, + this.createdDttm, + this.createdUid, + this.updatedDttm, + this.updatedUid, + this.modelCntnt); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/TbModelVerEntity.java b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/TbModelVerEntity.java index 48c104e4..62226fbb 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/TbModelVerEntity.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/TbModelVerEntity.java @@ -1,19 +1,14 @@ package com.kamco.cd.kamcoback.postgres.entity; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.SequenceGenerator; -import jakarta.persistence.Table; +import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; -import java.time.Instant; import lombok.Getter; import lombok.Setter; import org.hibernate.annotations.ColumnDefault; +import java.time.ZonedDateTime; + @Getter @Setter @Entity @@ -59,13 +54,13 @@ public class TbModelVerEntity { @ColumnDefault("now()") @Column(name = "created_dttm") - private Instant createdDttm; + private ZonedDateTime createdDttm; @Column(name = "created_uid") private Long createdUid; @Column(name = "updated_dttm") - private Instant updatedDttm; + private ZonedDateTime updatedDttm; @Column(name = "updated_uid") private Long updatedUid; diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepository.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepository.java new file mode 100644 index 00000000..7c614da4 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepository.java @@ -0,0 +1,6 @@ +package com.kamco.cd.kamcoback.postgres.repository.model; + +import com.kamco.cd.kamcoback.postgres.entity.ModelMngEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ModelMngRepository extends JpaRepository, ModelMngRepositoryCustom {} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepositoryCustom.java new file mode 100644 index 00000000..199199ef --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepositoryCustom.java @@ -0,0 +1,11 @@ +package com.kamco.cd.kamcoback.postgres.repository.model; + +import com.kamco.cd.kamcoback.model.dto.ModelMngDto; +import com.kamco.cd.kamcoback.postgres.entity.ModelMngEntity; + +import java.util.List; + +public interface ModelMngRepositoryCustom { + + List findModelMngAll(); +} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepositoryImpl.java new file mode 100644 index 00000000..1f48f84c --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMngRepositoryImpl.java @@ -0,0 +1,37 @@ +package com.kamco.cd.kamcoback.postgres.repository.model; + +import com.kamco.cd.kamcoback.model.dto.ModelMngDto; +import com.kamco.cd.kamcoback.postgres.entity.ModelMngEntity; +import com.querydsl.core.types.dsl.Expressions; +import com.querydsl.core.types.dsl.StringExpression; +import com.querydsl.jpa.impl.JPAQueryFactory; +import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport; + +import static com.kamco.cd.kamcoback.postgres.entity.QModelMngEntity.modelMngEntity; + +import java.util.List; +import java.util.Optional; + +public class ModelMngRepositoryImpl extends QuerydslRepositorySupport + implements ModelMngRepositoryCustom { + + private final JPAQueryFactory queryFactory; + private final StringExpression NULL_STRING = Expressions.stringTemplate("cast(null as text)"); + + public ModelMngRepositoryImpl(JPAQueryFactory queryFactory) { + super(ModelMngEntity.class); + this.queryFactory = queryFactory; + } + + @Override + public List findModelMngAll() { + return queryFactory + .selectFrom(modelMngEntity) + .orderBy(modelMngEntity.id.desc()) + .fetch(); + } + + public Optional findFinalModel(){ + return null; + } +}