|
|
|
@ -1,5 +1,7 @@
|
|
|
|
|
package kr.co.palnet.kac.api.v1.flight.laanc.service; |
|
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException; |
|
|
|
|
import com.fasterxml.jackson.databind.JsonMappingException; |
|
|
|
|
import kr.co.palnet.kac.api.external.model.TsQRcodeRQ; |
|
|
|
|
import kr.co.palnet.kac.api.external.service.CtrTrnsLctnService; |
|
|
|
|
import kr.co.palnet.kac.api.external.service.TsService; |
|
|
|
@ -33,6 +35,7 @@ import kr.co.palnet.kac.api.util.FileUtils;
|
|
|
|
|
import kr.co.palnet.kac.api.util.HttpUtils; |
|
|
|
|
import kr.co.palnet.kac.api.util.model.LaancPdfModel; |
|
|
|
|
import kr.co.palnet.kac.util.EncryptUtil; |
|
|
|
|
import kr.co.palnet.kac.util.ObjectMapperUtils; |
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
@ -44,10 +47,10 @@ import org.springframework.web.util.UriComponentsBuilder;
|
|
|
|
|
import com.google.zxing.WriterException; |
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.time.Instant; |
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Optional; |
|
|
|
|
import java.util.UUID; |
|
|
|
|
import java.time.temporal.ChronoUnit; |
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
|
@Service |
|
|
|
|
@Slf4j |
|
|
|
@ -64,7 +67,7 @@ public class FlightLaancService {
|
|
|
|
|
|
|
|
|
|
private final ComFileDomainService comFileDomainService; |
|
|
|
|
|
|
|
|
|
private final ComConfirmDomainService confirmDomainService; |
|
|
|
|
private final ComConfirmDomainService comConfirmDomainService; |
|
|
|
|
|
|
|
|
|
private final OtherDomainService otherDomainService; |
|
|
|
|
|
|
|
|
@ -370,7 +373,7 @@ public class FlightLaancService {
|
|
|
|
|
.updateDt(LocalDateTime.now()) |
|
|
|
|
.build(); |
|
|
|
|
|
|
|
|
|
confirmDomainService.saveComConfirmBas(comConfirmBas); |
|
|
|
|
comConfirmDomainService.saveComConfirmBas(comConfirmBas); |
|
|
|
|
|
|
|
|
|
log.info(">>> confirmKey [GENERATED] ", confirmKey); |
|
|
|
|
return LaancTsQRcodeRS.builder() |
|
|
|
@ -378,4 +381,42 @@ public class FlightLaancService {
|
|
|
|
|
.confirmKey(confirmKey) |
|
|
|
|
.build(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public PilotValidRs checkQrcode(String confirmKey) { |
|
|
|
|
log.info(">>> confirmKey : {}", confirmKey); |
|
|
|
|
String userId = SessionHelper.getUserId(); |
|
|
|
|
Optional<ComConfirmBas> entityData = comConfirmDomainService.findFirstByConfirmKeyOrderByCreateDtDesc(confirmKey); |
|
|
|
|
if(entityData.isEmpty()) throw new BaseException(BaseErrorCode.DATA_EMPTY, "QR코드 조회 실패"); |
|
|
|
|
|
|
|
|
|
ComConfirmBas entity = entityData.get(); |
|
|
|
|
|
|
|
|
|
if (!"RECEIVED".equals(entity.getStatus())){ |
|
|
|
|
Map<String, String> errorParam = new HashMap<>(); |
|
|
|
|
errorParam.put("status", entity.getStatus()); |
|
|
|
|
throw new BaseException(BaseErrorCode.DATA_EMPTY, errorParam.toString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// TODO 일자 검증 - 3분 초과
|
|
|
|
|
LocalDateTime createDt = entity.getCreateDt().plusMinutes(3); |
|
|
|
|
boolean flag = !createDt.isBefore(LocalDateTime.now()); |
|
|
|
|
if (!flag) { |
|
|
|
|
entity.setStatus("EXPIRED"); |
|
|
|
|
entity.setUpdateUserId(userId); |
|
|
|
|
comConfirmDomainService.saveComConfirmBas(entity); |
|
|
|
|
comConfirmDomainService.flush(); |
|
|
|
|
throw new BaseException(BaseErrorCode.QR_EXPIRED, "QR 기간 만료"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PilotValidRs rs = null; |
|
|
|
|
String rsData = entity.getRsData(); |
|
|
|
|
if(rsData != null && !rsData.isEmpty()){ |
|
|
|
|
try{ |
|
|
|
|
rs = ObjectMapperUtils.getObjectMapper().readValue(rsData, PilotValidRs.class); |
|
|
|
|
} catch (JsonProcessingException e){ |
|
|
|
|
log.error("",e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return rs; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|