From f73b3a21c6579df118b37c0ee0891ffd445086a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?lkd9125=28=EC=9D=B4=EA=B2=BD=EB=8F=84=29?= Date: Mon, 26 Feb 2024 11:24:23 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=EB=B3=B4=EC=99=84,=20=EA=B0=80=EC=83=81?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EB=84=A3=EC=96=B4=EC=A4=84=20?= =?UTF-8?q?=EC=8B=9C=20Context=20=EC=A0=95=EB=B3=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/kr/co/palnet/kac/BaseTest.java | 8 ++ .../flt/laanc/FlightLaancControllerTest.java | 81 ++++++++----------- .../flt/service/FltPlanDomainService.java | 4 +- .../v1/flight/laanc/model/FltPlanBasDTO.java | 30 +++++++ .../laanc/service/FlightLaancService.java | 4 +- 5 files changed, 76 insertions(+), 51 deletions(-) diff --git a/app/kac-app/src/test/java/kr/co/palnet/kac/BaseTest.java b/app/kac-app/src/test/java/kr/co/palnet/kac/BaseTest.java index b3fbe2f..ffea74b 100644 --- a/app/kac-app/src/test/java/kr/co/palnet/kac/BaseTest.java +++ b/app/kac-app/src/test/java/kr/co/palnet/kac/BaseTest.java @@ -15,7 +15,9 @@ import org.springframework.mock.web.MockFilterConfig; import org.springframework.restdocs.RestDocumentationContextProvider; import org.springframework.restdocs.RestDocumentationExtension; import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.config.BeanIds; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; @@ -111,6 +113,12 @@ public class BaseTest { BaseUserDetails userDetails = (BaseUserDetails) baseUserDetailsService.loadUserByUsername(username); + UsernamePasswordAuthenticationToken userToken = new UsernamePasswordAuthenticationToken( + userDetails, null, userDetails.getAuthorities() + ); + + SecurityContextHolder.getContext().setAuthentication(userToken); + return JwtUtil.makeAuthToken(userDetails); } 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 80f6d80..c9aeff4 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,6 +1,7 @@ package kr.co.palnet.kac.flt.laanc; import kr.co.palnet.kac.BaseTest; +import kr.co.palnet.kac.api.v1.flight.laanc.model.FltPlanBasDTO; 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; @@ -45,10 +46,7 @@ public class FlightLaancControllerTest extends BaseTest { public void getLaancAprvDetail() throws Exception{ String token = this.getUserToken(); - String planSno = this.testCreatePlan().toString(); - - String confirmKey = UUID.randomUUID().toString(); - flightLaancService.testCreateQRCode(confirmKey, this.CREATE_USERNAME); + String planSno = this.testCreatePlan().getPlanSno().toString(); this.mockMvc.perform( RestDocumentationRequestBuilders.get(this.BASE_URL + "/detail/{planSno}", planSno) @@ -157,13 +155,12 @@ public class FlightLaancControllerTest extends BaseTest { @Transactional public void getLaancAprvList() throws Exception{ // TODO::TEST로 만들 비행계획서 필요함 + String token = this.getUserToken(); - String planSno = this.testCreatePlan().toString(); - - String createStDate = "2024-02-23"; - String createEndDate = "2024-02-23"; + FltPlanBasDTO fltPlanBasDto = this.testCreatePlan(); - String token = this.getUserToken(); + String createStDate = fltPlanBasDto.getCreateDt().toLocalDate().minusDays(1).toString(); + String createEndDate = fltPlanBasDto.getCreateDt().toLocalDate().plusDays(1).toString(); this.mockMvc.perform( get(this.BASE_URL + "/list") @@ -186,33 +183,33 @@ public class FlightLaancControllerTest extends BaseTest { parameterWithName("memberName").description("이름").optional() ), responseFields( - fieldWithPath("[].planSno").type(JsonFieldType.NUMBER).description("비행계획서 일련번호"), - fieldWithPath("[].groupId").type(JsonFieldType.STRING).description("그룹 아이디"), - fieldWithPath("[].cstmrSno").type(JsonFieldType.NUMBER).description("작성자 일련번호"), - fieldWithPath("[].memberName").type(JsonFieldType.STRING).description("작성자 이름"), - fieldWithPath("[].email").type(JsonFieldType.STRING).description("이메일"), - fieldWithPath("[].hpno").type(JsonFieldType.STRING).description("연락처"), - fieldWithPath("[].clncd").type(JsonFieldType.STRING).description("국가번호(연락처)"), + fieldWithPath("[].planSno").type(JsonFieldType.NUMBER).description("비행계획서 일련번호").optional(), + fieldWithPath("[].groupId").type(JsonFieldType.STRING).description("그룹 아이디").optional(), + fieldWithPath("[].cstmrSno").type(JsonFieldType.NUMBER).description("작성자 일련번호").optional(), + fieldWithPath("[].memberName").type(JsonFieldType.STRING).description("작성자 이름").optional(), + fieldWithPath("[].email").type(JsonFieldType.STRING).description("이메일").optional(), + fieldWithPath("[].hpno").type(JsonFieldType.STRING).description("연락처").optional(), + fieldWithPath("[].clncd").type(JsonFieldType.STRING).description("국가번호(연락처)").optional(), fieldWithPath("[].addr").type(JsonFieldType.STRING).description("주소").optional(), fieldWithPath("[].addrDtlCn").type(JsonFieldType.STRING).description("상세주소").optional(), fieldWithPath("[].zip").type(JsonFieldType.STRING).description("우편번호").optional(), - fieldWithPath("[].schFltStDt").type(JsonFieldType.STRING).description("비행시작일시"), - fieldWithPath("[].schFltEndDt").type(JsonFieldType.STRING).description("비행종료일시"), - fieldWithPath("[].fltPurpose").type(JsonFieldType.STRING).description("비행목적"), - fieldWithPath("[].fltType").type(JsonFieldType.STRING).description("상업/비사업 구분"), - fieldWithPath("[].fltTypeNm").type(JsonFieldType.STRING).description("상업/비사업 구분 코드"), - fieldWithPath("[].aprvlYn").type(JsonFieldType.STRING).description("승인여부"), - fieldWithPath("[].aprvlDt").type(JsonFieldType.STRING).description("승인일자"), - fieldWithPath("[].fileGroupNo").type(JsonFieldType.NUMBER).description("파일그룹번호"), - fieldWithPath("[].createUserId").type(JsonFieldType.STRING).description("등록자ID"), - fieldWithPath("[].createDt").type(JsonFieldType.STRING).description("등록일시"), - fieldWithPath("[].updateUserId").type(JsonFieldType.STRING).description("수정자ID"), - fieldWithPath("[].updateDt").type(JsonFieldType.STRING).description("수정일시"), - fieldWithPath("[].serviceType").type(JsonFieldType.STRING).description("각 항별 코드"), - fieldWithPath("[].corpRegYn").type(JsonFieldType.STRING).description("기업여부"), - fieldWithPath("[].pdfUrl").type(JsonFieldType.STRING).description("공문URL"), - - fieldWithPath("[].areaList").type(JsonFieldType.ARRAY).description("비행구역 리스트"), + fieldWithPath("[].schFltStDt").type(JsonFieldType.STRING).description("비행시작일시").optional(), + fieldWithPath("[].schFltEndDt").type(JsonFieldType.STRING).description("비행종료일시").optional(), + fieldWithPath("[].fltPurpose").type(JsonFieldType.STRING).description("비행목적").optional(), + fieldWithPath("[].fltType").type(JsonFieldType.STRING).description("상업/비사업 구분").optional(), + fieldWithPath("[].fltTypeNm").type(JsonFieldType.STRING).description("상업/비사업 구분 코드").optional(), + fieldWithPath("[].aprvlYn").type(JsonFieldType.STRING).description("승인여부").optional(), + fieldWithPath("[].aprvlDt").type(JsonFieldType.STRING).description("승인일자").optional(), + fieldWithPath("[].fileGroupNo").type(JsonFieldType.NUMBER).description("파일그룹번호").optional(), + fieldWithPath("[].createUserId").type(JsonFieldType.STRING).description("등록자ID").optional(), + fieldWithPath("[].createDt").type(JsonFieldType.STRING).description("등록일시").optional(), + fieldWithPath("[].updateUserId").type(JsonFieldType.STRING).description("수정자ID").optional(), + fieldWithPath("[].updateDt").type(JsonFieldType.STRING).description("수정일시").optional(), + fieldWithPath("[].serviceType").type(JsonFieldType.STRING).description("각 항별 코드").optional(), + fieldWithPath("[].corpRegYn").type(JsonFieldType.STRING).description("기업여부").optional(), + fieldWithPath("[].pdfUrl").type(JsonFieldType.STRING).description("공문URL").optional(), + + fieldWithPath("[].areaList").type(JsonFieldType.ARRAY).description("비행구역 리스트").optional(), fieldWithPath("[].areaList[].planAreaSno").type(JsonFieldType.NUMBER).description("비행구역 일련번호"), fieldWithPath("[].areaList[].planSno").type(JsonFieldType.NUMBER).description("비행계획서 일련번호"), fieldWithPath("[].areaList[].areaType").type(JsonFieldType.STRING).description("비행구역 생성타입"), @@ -229,7 +226,7 @@ public class FlightLaancControllerTest extends BaseTest { fieldWithPath("[].areaList[].bufferCoordList").type(JsonFieldType.ARRAY).description("비행 버퍼 좌표리스트").optional(), fieldWithPath("[].areaList[].fltMothoeRm").type(JsonFieldType.STRING).description("비행방식(기타)"), - fieldWithPath("[].arcrftList").type(JsonFieldType.ARRAY).description("비행기체 리스트"), + fieldWithPath("[].arcrftList").type(JsonFieldType.ARRAY).description("비행기체 리스트").optional(), fieldWithPath("[].arcrftList[].planArcrftSno").type(JsonFieldType.NUMBER).description("계획서 기체 일련번호"), fieldWithPath("[].arcrftList[].planSno").type(JsonFieldType.NUMBER).description("비행계획서 일련번호"), fieldWithPath("[].arcrftList[].arcrftSno").type(JsonFieldType.NUMBER).description("기체 일련번호").optional(), @@ -263,8 +260,8 @@ public class FlightLaancControllerTest extends BaseTest { fieldWithPath("[].arcrftList[].arcrftWghtCd").type(JsonFieldType.STRING).description("자체중량코드"), fieldWithPath("[].pilotList").type(JsonFieldType.ARRAY).description("공문URL").optional(), - fieldWithPath("[].arcrftWght").type(JsonFieldType.STRING).description("기체 중량설명"), - fieldWithPath("[].elev").type(JsonFieldType.STRING).description("비행고도") + fieldWithPath("[].arcrftWght").type(JsonFieldType.STRING).description("기체 중량설명").optional(), + fieldWithPath("[].elev").type(JsonFieldType.STRING).description("비행고도").optional() ) ) ) @@ -615,19 +612,9 @@ public class FlightLaancControllerTest extends BaseTest { } - private Long testCreatePlan(){ + private FltPlanBasDTO 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); 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 02a7db0..2c37f15 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,11 +33,11 @@ public class FltPlanDomainService { return fltPlanQueryRepository.findAllBySearch(memberName, createStDate, createEndDate); } - public Long findByOrderByPlanSnoDesc(){ + public FltPlanBas findByOrderByPlanSnoDesc(){ Optional fltPlanBasData = fltPlanBasRepository.findTopByOrderByPlanSnoDesc(); - return fltPlanBasData.map(FltPlanBas::getPlanSno).orElse(null); + return fltPlanBasData.orElse(null); } public Optional> findAllFltPlanBasBySearch(String searchDate){ diff --git a/web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/model/FltPlanBasDTO.java b/web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/model/FltPlanBasDTO.java index c6aa0ad..506c9d0 100644 --- a/web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/model/FltPlanBasDTO.java +++ b/web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/model/FltPlanBasDTO.java @@ -56,6 +56,36 @@ public class FltPlanBasDTO { return dto; } + public static FltPlanBasDTO toFltPlanBasDto(FltPlanBas entity){ + FltPlanBasDTO dto = new FltPlanBasDTO(); + dto.setPlanSno(entity.getPlanSno()); + dto.setGroupId(entity.getGroupId()); + dto.setCstmrSno(entity.getCstmrSno()); + dto.setServiceType(entity.getServiceType()); + dto.setMemberName(entity.getMemberName()); + dto.setEmail(entity.getEmail()); + dto.setHpno(entity.getHpno()); + dto.setClncd(entity.getClncd()); + dto.setAddr(entity.getAddr()); + dto.setAddrDtlCn(entity.getAddrDtlCn()); + dto.setZip(entity.getZip()); + dto.setSchFltStDt(entity.getSchFltStDt()); + dto.setSchFltEndDt(entity.getSchFltEndDt()); + dto.setFltPurpose(FltPurpose.fromCode(entity.getFltPurpose())); + dto.setFltType(FltType.fromCode(entity.getFltType())); + dto.setCorpRegYn(entity.getCorpRegYn()); + dto.setAprvlYn(entity.getAprvlYn()); + dto.setAprvlDt(entity.getAprvlDt()); + dto.setDelYn(entity.getDelYn()); + dto.setFileGroupNo(entity.getFileGroupNo()); + dto.setCreateUserId(entity.getCreateUserId()); + dto.setCreateDt(entity.getCreateDt()); + dto.setUpdateUserId(entity.getUpdateUserId()); + dto.setUpdateDt(entity.getUpdateDt()); + + return dto; + } + public static FltPlanBas toFltPlanEntity(FltPlanBasDTO dto){ return FltPlanBas.builder() .planSno(dto.getPlanSno()) 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 b52c869..0762e30 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 @@ -645,7 +645,7 @@ public class FlightLaancService { comConfirmDomainService.saveComConfirmBas(comConfirmBas); } - public Long testDescPlanSno(){ - return fltPlanDomainService.findByOrderByPlanSnoDesc(); + public FltPlanBasDTO testDescPlanSno(){ + return FltPlanBasDTO.toFltPlanBasDto(fltPlanDomainService.findByOrderByPlanSnoDesc()); } }