From 636b8ad9321ade47e4dc2ec7d71a8c43ce03fd02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?lkd9125=28=EC=9D=B4=EA=B2=BD=EB=8F=84=29?= Date: Fri, 23 Feb 2024 19:00:33 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20TestCode=EC=97=90=EC=84=9C=20Lazy?= =?UTF-8?q?=EB=A1=9C=EB=94=A9=20=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=A5=BC=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20=EC=9E=91=EC=97=85=EC=BD=94=EB=93=9C?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flt/laanc/FlightLaancControllerTest.java | 35 +++++++++++++++++-- .../palnet/kac/data/flt/model/FltPlanBas.java | 8 ++--- .../flt/repository/FltPlanBasRepository.java | 4 +++ .../flt/service/FltPlanDomainService.java | 7 ++++ .../laanc/service/FlightLaancService.java | 13 +++++-- .../kac/config/security/SecurityConfig.java | 4 +-- 6 files changed, 60 insertions(+), 11 deletions(-) diff --git a/app/kac-app/src/test/java/kr/co/palnet/kac/flt/laanc/FlightLaancControllerTest.java b/app/kac-app/src/test/java/kr/co/palnet/kac/flt/laanc/FlightLaancControllerTest.java index 8e1bf71..80f6d80 100644 --- a/app/kac-app/src/test/java/kr/co/palnet/kac/flt/laanc/FlightLaancControllerTest.java +++ b/app/kac-app/src/test/java/kr/co/palnet/kac/flt/laanc/FlightLaancControllerTest.java @@ -1,7 +1,10 @@ package kr.co.palnet.kac.flt.laanc; import kr.co.palnet.kac.BaseTest; +import kr.co.palnet.kac.api.v1.flight.laanc.model.create.CreateLaancPlanRQ; import kr.co.palnet.kac.api.v1.flight.laanc.service.FlightLaancService; +import kr.co.palnet.kac.config.security.util.SessionHelper; +import kr.co.palnet.kac.util.ObjectMapperUtils; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -9,6 +12,9 @@ import org.springframework.http.MediaType; import org.springframework.restdocs.headers.HeaderDocumentation; import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders; import org.springframework.restdocs.payload.JsonFieldType; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.transaction.annotation.Transactional; import java.util.UUID; @@ -37,10 +43,10 @@ public class FlightLaancControllerTest extends BaseTest { @Test @Transactional public void getLaancAprvDetail() throws Exception{ - String planSno = "5"; - String token = this.getUserToken(); + String planSno = this.testCreatePlan().toString(); + String confirmKey = UUID.randomUUID().toString(); flightLaancService.testCreateQRCode(confirmKey, this.CREATE_USERNAME); @@ -152,6 +158,8 @@ public class FlightLaancControllerTest extends BaseTest { public void getLaancAprvList() throws Exception{ // TODO::TEST로 만들 비행계획서 필요함 + String planSno = this.testCreatePlan().toString(); + String createStDate = "2024-02-23"; String createEndDate = "2024-02-23"; @@ -607,4 +615,27 @@ public class FlightLaancControllerTest extends BaseTest { } + private Long testCreatePlan(){ + String jsonRQ = "{\"cstmrSno\": 3,\"fltType\": \"COMMERCIAL\",\"schFltStDt\": \"2024-02-21T11:43:00\",\"schFltEndDt\": \"2024-02-22T15:46:00\",\"fltPurpose\": \"06\",\"serviceType\": \"KAC\",\"areaList\" : [{\"areaType\": \"LINE\",\"fltMethod\": \"02\",\"fltMothoeRm\": \"\",\"bufferZone\": \"100\",\"fltElev\": \"100\",\"coordList\": [{\"lat\": 37.51625845252909,\"lon\": 126.72340194011286},{\"lat\": 37.512215014051776,\"lon\": 126.72058946300956},{\"lat\": 37.51123897883966,\"lon\": 126.72463239884405}]}],\"arcrftList\" : [{\"idntfNum\": \"PA0001\",\"groupNm\": \"\",\"prdctNum\": \"\",\"arcrftTypeCd\": \"11\",\"arcrftModelNm\": \"\",\"prdctCmpnNm\": \"\",\"prdctDate\": \"\",\"arcrftLngth\": 0,\"arcrftWghtCd\": \"8\",\"arcrftHght\": 0,\"arcrftWght\": 0,\"wghtTypeCd\": \"\",\"imageUrl\": \"\",\"takeoffWght\": 0,\"useYn\": \"\",\"cameraYn\": \"\",\"insrncYn\": \"\",\"ownerNm\": \"\"}],\"terms\": []}".trim(); + + this.getUserToken(); + + UserDetails userDetails = this.baseUserDetailsService.loadUserByUsername(this.CREATE_USERNAME); + + UsernamePasswordAuthenticationToken userToken = new UsernamePasswordAuthenticationToken( + userDetails, null, userDetails.getAuthorities() + ); + + SecurityContextHolder.getContext().setAuthentication(userToken); + + CreateLaancPlanRQ rq; + try{ + rq = ObjectMapperUtils.getObjectMapper().readValue(jsonRQ, CreateLaancPlanRQ.class); + flightLaancService.createPlan(rq); + } catch (Exception e){ + e.printStackTrace(); + } + + return flightLaancService.testDescPlanSno(); + } } diff --git a/data/flt/src/main/java/kr/co/palnet/kac/data/flt/model/FltPlanBas.java b/data/flt/src/main/java/kr/co/palnet/kac/data/flt/model/FltPlanBas.java index 54def4d..d418109 100644 --- a/data/flt/src/main/java/kr/co/palnet/kac/data/flt/model/FltPlanBas.java +++ b/data/flt/src/main/java/kr/co/palnet/kac/data/flt/model/FltPlanBas.java @@ -119,16 +119,16 @@ public class FltPlanBas { @Column(name = "UPDATE_DT", columnDefinition = "datetime", nullable = false) private LocalDateTime updateDt; - @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY) + @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private List fltPlanAreaList; - @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY) + @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private List fltPlanArcrftList; - @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY) + @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private List fltPlanPilotList; - @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY) + @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private List fltPlanCtrCntrlRelList; } diff --git a/data/flt/src/main/java/kr/co/palnet/kac/data/flt/repository/FltPlanBasRepository.java b/data/flt/src/main/java/kr/co/palnet/kac/data/flt/repository/FltPlanBasRepository.java index ec56473..c79e880 100644 --- a/data/flt/src/main/java/kr/co/palnet/kac/data/flt/repository/FltPlanBasRepository.java +++ b/data/flt/src/main/java/kr/co/palnet/kac/data/flt/repository/FltPlanBasRepository.java @@ -3,6 +3,10 @@ package kr.co.palnet.kac.data.flt.repository; import kr.co.palnet.kac.data.flt.model.FltPlanBas; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.Optional; + public interface FltPlanBasRepository extends JpaRepository { + + public Optional findTopByOrderByPlanSnoDesc(); } diff --git a/data/flt/src/main/java/kr/co/palnet/kac/data/flt/service/FltPlanDomainService.java b/data/flt/src/main/java/kr/co/palnet/kac/data/flt/service/FltPlanDomainService.java index a5a3f1e..02a7db0 100644 --- a/data/flt/src/main/java/kr/co/palnet/kac/data/flt/service/FltPlanDomainService.java +++ b/data/flt/src/main/java/kr/co/palnet/kac/data/flt/service/FltPlanDomainService.java @@ -33,6 +33,13 @@ public class FltPlanDomainService { return fltPlanQueryRepository.findAllBySearch(memberName, createStDate, createEndDate); } + public Long findByOrderByPlanSnoDesc(){ + + Optional fltPlanBasData = fltPlanBasRepository.findTopByOrderByPlanSnoDesc(); + + return fltPlanBasData.map(FltPlanBas::getPlanSno).orElse(null); + } + public Optional> findAllFltPlanBasBySearch(String searchDate){ return fltPlanQueryRepository.findAllBySearch(searchDate); } diff --git a/web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/service/FlightLaancService.java b/web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/service/FlightLaancService.java index 324dbde..b52c869 100644 --- a/web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/service/FlightLaancService.java +++ b/web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/service/FlightLaancService.java @@ -194,11 +194,12 @@ public class FlightLaancService { planPilotDto.setUpdateUserId(userId); planPilotDto.setUpdateDt(LocalDateTime.now()); - fltPlanDomainService.saveFltPlanPilot(FltPlanPilotDTO.toEntity(planPilotDto)); + fltPlanBas.setFltPlanPilotList(Arrays.asList(FltPlanPilotDTO.toEntity(planPilotDto))); // 기체정보 INSERT List basLaancArcrftModelList = rq.getArcrftList(); + List fltPlanArcrftList = new ArrayList<>(); if (basLaancArcrftModelList != null && !basLaancArcrftModelList.isEmpty()) { for (BasLaancArcrftModel basLaancArcrftModel : basLaancArcrftModelList) { FltPlanArcrftDTO arcrftEntityDto = FltPlanArcrftDTO.toDto(basLaancArcrftModel); @@ -221,10 +222,12 @@ public class FlightLaancService { // arcrftEntity.setInsuranceExperiod(null); // 보헌 유효기간 // arcrftEntity.setCorporationNm(null); // 법인명 - fltPlanDomainService.saveFltPlanArcrft(FltPlanArcrftDTO.toEntity(arcrftEntityDto)); + fltPlanArcrftList.add(FltPlanArcrftDTO.toEntity(arcrftEntityDto)); } } + fltPlanBas.setFltPlanArcrftList(fltPlanArcrftList); + if (rq.getTerms() != null && !rq.getTerms().isEmpty()) { for (AnctCstmrTermsModel agree : rq.getTerms()) { PtyTermsAgreeTxnDTO agreeEntityDto = new PtyTermsAgreeTxnDTO(); @@ -281,7 +284,7 @@ public class FlightLaancService { comFileDomainService.saveComFileBas(ComFileBasDTO.toEntity(comFileBasDto)); fltPlanBas.setFileGroupNo(comFileBasDto.getFileGroupNo()); - fltPlanDomainService.saveFltPlanBas(fltPlanBas); +// fltPlanDomainService.saveFltPlanBas(fltPlanBas); String downloadUrl = fileUtils.getDownloadUrl(comFileBasDto.getFileSno()); @@ -641,4 +644,8 @@ public class FlightLaancService { comConfirmDomainService.saveComConfirmBas(comConfirmBas); } + + public Long testDescPlanSno(){ + return fltPlanDomainService.findByOrderByPlanSnoDesc(); + } } diff --git a/web/security/src/main/java/kr/co/palnet/kac/config/security/SecurityConfig.java b/web/security/src/main/java/kr/co/palnet/kac/config/security/SecurityConfig.java index 0229305..6b94fcf 100644 --- a/web/security/src/main/java/kr/co/palnet/kac/config/security/SecurityConfig.java +++ b/web/security/src/main/java/kr/co/palnet/kac/config/security/SecurityConfig.java @@ -53,9 +53,9 @@ public abstract class SecurityConfig { @Bean PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); +// return new BCryptPasswordEncoder(); // TODO 테스트 후 BCryptPasswordEncoder 로 변경 - 회원가입 로직 구현 후 제거 -// return NoOpPasswordEncoder.getInstance(); + return NoOpPasswordEncoder.getInstance(); } @Bean