From 99c25db69c4558f86d37402545713132b925b5f8 Mon Sep 17 00:00:00 2001 From: qkr7828 Date: Wed, 28 Feb 2024 11:26:25 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20terms=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pty/repository/PtyTermsBasRepository.java | 3 + .../pty/repository/PtyTermsDtlRepository.java | 4 +- .../pty/service/PtyTermsDomainService.java | 27 ++++ .../terms/controller/ComTermsController.java | 124 +++++++++--------- .../api/v1/common/terms/model/ComTermsRQ.java | 14 ++ .../api/v1/common/terms/model/ComTermsRS.java | 24 ++++ .../common/terms/service/ComTermsService.java | 44 +++++++ 7 files changed, 177 insertions(+), 63 deletions(-) create mode 100644 data/pty/src/main/java/kr/co/palnet/kac/data/pty/service/PtyTermsDomainService.java diff --git a/data/pty/src/main/java/kr/co/palnet/kac/data/pty/repository/PtyTermsBasRepository.java b/data/pty/src/main/java/kr/co/palnet/kac/data/pty/repository/PtyTermsBasRepository.java index fc52679..a59207b 100644 --- a/data/pty/src/main/java/kr/co/palnet/kac/data/pty/repository/PtyTermsBasRepository.java +++ b/data/pty/src/main/java/kr/co/palnet/kac/data/pty/repository/PtyTermsBasRepository.java @@ -3,6 +3,9 @@ package kr.co.palnet.kac.data.pty.repository; import kr.co.palnet.kac.data.pty.model.PtyTermsBas; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; + public interface PtyTermsBasRepository extends JpaRepository { + List findBySiteCdAndTermsCtgryCd(String siteCd, String termsCtgryCd); } diff --git a/data/pty/src/main/java/kr/co/palnet/kac/data/pty/repository/PtyTermsDtlRepository.java b/data/pty/src/main/java/kr/co/palnet/kac/data/pty/repository/PtyTermsDtlRepository.java index 32003bc..9f21b9b 100644 --- a/data/pty/src/main/java/kr/co/palnet/kac/data/pty/repository/PtyTermsDtlRepository.java +++ b/data/pty/src/main/java/kr/co/palnet/kac/data/pty/repository/PtyTermsDtlRepository.java @@ -3,6 +3,8 @@ package kr.co.palnet.kac.data.pty.repository; import kr.co.palnet.kac.data.pty.model.PtyTermsDtl; import org.springframework.data.jpa.repository.JpaRepository; -public interface PtyTermsDtlRepository extends JpaRepository { +import java.util.List; +public interface PtyTermsDtlRepository extends JpaRepository { + List findByLangDivCd(String langDivCd); } diff --git a/data/pty/src/main/java/kr/co/palnet/kac/data/pty/service/PtyTermsDomainService.java b/data/pty/src/main/java/kr/co/palnet/kac/data/pty/service/PtyTermsDomainService.java new file mode 100644 index 0000000..fc7cac5 --- /dev/null +++ b/data/pty/src/main/java/kr/co/palnet/kac/data/pty/service/PtyTermsDomainService.java @@ -0,0 +1,27 @@ +package kr.co.palnet.kac.data.pty.service; + +import kr.co.palnet.kac.data.pty.model.PtyTermsBas; +import kr.co.palnet.kac.data.pty.model.PtyTermsDtl; +import kr.co.palnet.kac.data.pty.repository.PtyTermsBasRepository; +import kr.co.palnet.kac.data.pty.repository.PtyTermsDtlRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class PtyTermsDomainService { + + private final PtyTermsBasRepository ptyTermsBasRepository; + + private final PtyTermsDtlRepository ptyTermsDtlRepository; + + public List getPtyTermsBasList(PtyTermsBas rq){ + return ptyTermsBasRepository.findBySiteCdAndTermsCtgryCd(rq.getSiteCd(), rq.getTermsCtgryCd()); + } + + public List getPtyTermsDtlList(String langDivCd){ + return ptyTermsDtlRepository.findByLangDivCd(langDivCd); + } +} diff --git a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/controller/ComTermsController.java b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/controller/ComTermsController.java index e677793..594c873 100644 --- a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/controller/ComTermsController.java +++ b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/controller/ComTermsController.java @@ -1,62 +1,62 @@ -//package kr.co.palnet.kac.api.v1.common.terms.controller; -// -//import io.swagger.v3.oas.annotations.Operation; -//import io.swagger.v3.oas.annotations.tags.Tag; -//import kr.co.palnet.kac.api.v1.common.terms.model.ComTermsRQ; -//import kr.co.palnet.kac.api.v1.common.terms.model.ComTermsRS; -//import kr.co.palnet.kac.api.v1.common.terms.service.ComTermsService; -//import kr.co.palnet.kac.core.response.BasicResponse; -//import kr.co.palnet.kac.core.response.ErrorResponse; -//import kr.co.palnet.kac.core.response.SuccessResponse; -//import lombok.RequiredArgsConstructor; -//import lombok.extern.log4j.Log4j2; -//import org.springframework.http.HttpStatus; -//import org.springframework.http.MediaType; -//import org.springframework.http.ResponseEntity; -//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; -// -//@Log4j2 -//@RestController -//@RequiredArgsConstructor -//@RequestMapping(value = "/api/acnt/terms", produces = {MediaType.APPLICATION_JSON_VALUE}) -//@Tag(name = "약관 기본", description = "약관 관련 API") -//public class ComTermsController { -// -// private final ComTermsService service; -// -// /** -// * 약관정보 들을 가져오는 기능, -// * AcntTermsRqModel에 입력받은 약관타입에 따른 약관항목을 반환함. -// * @param rq -// * @return -// */ -// @Operation(summary = "약관 조회", description = "약관 정보를 조회하는 API 입니다.") -// @GetMapping(value = "/list") -// public ResponseEntity list(ComTermsRQ rq) { -// List result = null; -// -// log.debug("RQ>>>>>>>>" , rq.toString()); -// -// try { -// result = service.list(rq); // 입력받은 값에 따른 약관항목을 반환하는 기능. -// -// -// } catch (Exception e) { -// log.error("IGNORE : {}", e); -// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) -// .body(new ErrorResponse("Server Error", "-1")); -// -// } -// return ResponseEntity.ok().body(new SuccessResponse(result)); -// -// } -// -// -// -// -// -//} +package kr.co.palnet.kac.api.v1.common.terms.controller; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import kr.co.palnet.kac.api.v1.common.terms.model.ComTermsRQ; +import kr.co.palnet.kac.api.v1.common.terms.model.ComTermsRS; +import kr.co.palnet.kac.api.v1.common.terms.service.ComTermsService; +import kr.co.palnet.kac.core.response.BasicResponse; +import kr.co.palnet.kac.core.response.ErrorResponse; +import kr.co.palnet.kac.core.response.SuccessResponse; +import lombok.RequiredArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +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; + +@Log4j2 +@RestController +@RequiredArgsConstructor +@RequestMapping(value = "/v1/com/terms", produces = {MediaType.APPLICATION_JSON_VALUE}) +@Tag(name = "약관 기본", description = "약관 관련 API") +public class ComTermsController { + + private final ComTermsService service; + + /** + * 약관정보 들을 가져오는 기능, + * AcntTermsRqModel에 입력받은 약관타입에 따른 약관항목을 반환함. + * @param rq + * @return + */ + @Operation(summary = "약관 조회", description = "약관 정보를 조회하는 API 입니다.") + @GetMapping(value = "/list") + public ResponseEntity list(ComTermsRQ rq) { + List result = null; + + log.debug("RQ>>>>>>>>" , rq.toString()); + + try { + result = service.getPtyTermsList(rq); // 입력받은 값에 따른 약관항목을 반환하는 기능. + + + } catch (Exception e) { + log.error("IGNORE : {}", e); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(new ErrorResponse("Server Error", "-1")); + + } + return ResponseEntity.ok().body(new SuccessResponse(result)); + + } + + + + + +} diff --git a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/model/ComTermsRQ.java b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/model/ComTermsRQ.java index ae5a133..65ebf5a 100644 --- a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/model/ComTermsRQ.java +++ b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/model/ComTermsRQ.java @@ -1,4 +1,18 @@ package kr.co.palnet.kac.api.v1.common.terms.model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data public class ComTermsRQ { + + @Schema(description = "사이트 코드" , example = "SANDBOX") + private String siteCd; + + @Schema(description = "약관 카테고리 코드" , example = "SITE_JOIN") + private String termsCtgryCd; + + @Schema(description = "언어 코드" , example = "KOR") + private String langDivCd; + } diff --git a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/model/ComTermsRS.java b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/model/ComTermsRS.java index ff9d51e..97e9068 100644 --- a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/model/ComTermsRS.java +++ b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/model/ComTermsRS.java @@ -1,4 +1,28 @@ package kr.co.palnet.kac.api.v1.common.terms.model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDate; + +@Data public class ComTermsRS { + private int termsSno ; + + private String siteCd; + + @JsonSerialize + private LocalDate estbshDate; + + private String termsCtgryCd; + + private String langDivCd; + + private String termsTitleNm; + + private String termsCn; + + @Schema(hidden = true) + private String simpleCn; } diff --git a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/service/ComTermsService.java b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/service/ComTermsService.java index 22697c6..265486f 100644 --- a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/service/ComTermsService.java +++ b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/terms/service/ComTermsService.java @@ -1,4 +1,48 @@ package kr.co.palnet.kac.api.v1.common.terms.service; +import kr.co.palnet.kac.api.v1.common.terms.model.ComTermsRQ; +import kr.co.palnet.kac.api.v1.common.terms.model.ComTermsRS; +import kr.co.palnet.kac.data.pty.model.PtyTermsBas; +import kr.co.palnet.kac.data.pty.model.PtyTermsDtl; +import kr.co.palnet.kac.data.pty.service.PtyTermsDomainService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +@RequiredArgsConstructor public class ComTermsService { + + private final PtyTermsDomainService ptyTermsDomainService; + + public List getPtyTermsList(ComTermsRQ rq){ + + List result = new ArrayList<>(); + + PtyTermsBas bas = new PtyTermsBas(); + bas.setSiteCd(rq.getSiteCd()); + bas.setTermsCtgryCd(rq.getTermsCtgryCd()); + + List basEntity = ptyTermsDomainService.getPtyTermsBasList(bas); + + List dtlEntity = ptyTermsDomainService.getPtyTermsDtlList(rq.getLangDivCd()); + + for(PtyTermsBas termsBas : basEntity){ + ComTermsRS rs = new ComTermsRS(); + rs.setTermsSno(termsBas.getTermsSno().intValue()); + rs.setSiteCd(termsBas.getSiteCd()); + rs.setEstbshDate(termsBas.getEstbshDate()); + rs.setTermsCtgryCd(termsBas.getTermsCtgryCd()); + for(PtyTermsDtl termsDtl : dtlEntity){ + if(rs.getTermsSno() != termsDtl.getTermsSno().intValue()) continue; + rs.setLangDivCd(termsDtl.getLangDivCd()); + rs.setTermsTitleNm(termsDtl.getTermsTitleNm()); + rs.setTermsCn(termsDtl.getTermsCn()); + } + result.add(rs); + } + return result; + } }