|
|
|
@ -1,9 +1,15 @@
|
|
|
|
|
package kr.co.palnet.kac.api.v1.flight.laanc.service; |
|
|
|
|
|
|
|
|
|
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; |
|
|
|
|
import kr.co.palnet.kac.api.v1.flight.laanc.model.create.CstmrModel; |
|
|
|
|
import kr.co.palnet.kac.api.v1.flight.laanc.model.*; |
|
|
|
|
import kr.co.palnet.kac.api.v1.flight.laanc.model.create.*; |
|
|
|
|
import kr.co.palnet.kac.api.v1.flight.laanc.model.tsqr.LaancTsQRcodeRQ; |
|
|
|
|
import kr.co.palnet.kac.api.v1.flight.laanc.model.tsqr.LaancTsQRcodeRS; |
|
|
|
|
import kr.co.palnet.kac.data.com.domain.ComConfirmBas; |
|
|
|
|
import kr.co.palnet.kac.data.com.service.ComConfirmDomainService; |
|
|
|
|
import kr.co.palnet.kac.data.other.service.OtherDomainService; |
|
|
|
|
import kr.co.palnet.kac.api.external.model.ComnSmsLaancAprovModel; |
|
|
|
|
import kr.co.palnet.kac.api.external.model.CtrTrnsLctnModel; |
|
|
|
@ -29,13 +35,19 @@ import kr.co.palnet.kac.api.util.model.LaancPdfModel;
|
|
|
|
|
import kr.co.palnet.kac.util.EncryptUtil; |
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
import org.springframework.web.util.UriComponentsBuilder; |
|
|
|
|
|
|
|
|
|
import com.google.zxing.WriterException; |
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Optional; |
|
|
|
|
import java.util.UUID; |
|
|
|
|
|
|
|
|
|
@Service |
|
|
|
|
@Slf4j |
|
|
|
@ -52,23 +64,33 @@ public class FlightLaancService {
|
|
|
|
|
|
|
|
|
|
private final ComFileDomainService comFileDomainService; |
|
|
|
|
|
|
|
|
|
private final ComConfirmDomainService confirmDomainService; |
|
|
|
|
|
|
|
|
|
private final OtherDomainService otherDomainService; |
|
|
|
|
|
|
|
|
|
private final CtrTrnsLctnService ctrTrnsLctnService; |
|
|
|
|
|
|
|
|
|
private final ComnSmsService comnSmsService; |
|
|
|
|
|
|
|
|
|
private final TsService tsService; |
|
|
|
|
//
|
|
|
|
|
private final FileUtils fileUtils; |
|
|
|
|
|
|
|
|
|
@Value("${app.host}") |
|
|
|
|
private String APP_HOST; |
|
|
|
|
|
|
|
|
|
@Value("${external.ts.return.uri}") |
|
|
|
|
private String TS_RETURN_URI; |
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
public CreateLaancPlanRS createPlan(CreateLaancPlanRQ rq) { |
|
|
|
|
|
|
|
|
|
Long cstmrnSno = SessionHelper.getCstmrSno(); |
|
|
|
|
Long cstmrSno = SessionHelper.getCstmrSno(); |
|
|
|
|
String userId = SessionHelper.getUserId(); |
|
|
|
|
|
|
|
|
|
// 비행계획서 INSERT
|
|
|
|
|
Optional<PtyCstmrBas> userEntityData = ptyCstmrDomainService.findPtyCstmrBasById(cstmrnSno); |
|
|
|
|
Optional<PtyCstmrDtl> userDetailEntityData = ptyCstmrDomainService.findPtyCstmrDtlById(cstmrnSno); |
|
|
|
|
Optional<PtyCstmrBas> userEntityData = ptyCstmrDomainService.findPtyCstmrBasById(cstmrSno); |
|
|
|
|
Optional<PtyCstmrDtl> userDetailEntityData = ptyCstmrDomainService.findPtyCstmrDtlById(cstmrSno); |
|
|
|
|
|
|
|
|
|
if(userEntityData.isEmpty() || userDetailEntityData.isEmpty()) throw new BaseException(BaseErrorCode.DATA_EMPTY); |
|
|
|
|
|
|
|
|
@ -280,4 +302,80 @@ public class FlightLaancService {
|
|
|
|
|
.build(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
public LaancTsQRcodeRS createQRcode(LaancTsQRcodeRQ rq) { |
|
|
|
|
Long cstmrSno = SessionHelper.getCstmrSno(); |
|
|
|
|
String userId = SessionHelper.getUserId(); |
|
|
|
|
Optional<PtyCstmrBas> userEntityData = ptyCstmrDomainService.findPtyCstmrBasById(cstmrSno); |
|
|
|
|
Optional<PtyCstmrDtl> userDetailEntityData = ptyCstmrDomainService.findPtyCstmrDtlById(cstmrSno); |
|
|
|
|
|
|
|
|
|
if(userEntityData.isEmpty() || userDetailEntityData.isEmpty()) throw new BaseException(BaseErrorCode.DATA_EMPTY); |
|
|
|
|
|
|
|
|
|
CstmrModel cstmrInfo = CstmrModel.toModel(userEntityData.get(), userDetailEntityData.get()); |
|
|
|
|
String userCi = cstmrInfo.getIpinCi(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String idntfNum = null; |
|
|
|
|
if (rq != null && rq.getIdntfNum() != null && !rq.getIdntfNum().isEmpty()) { |
|
|
|
|
idntfNum = rq.getIdntfNum(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
String confirmKey = UUID.randomUUID().toString(); |
|
|
|
|
String params = null; |
|
|
|
|
byte[] qr = null; |
|
|
|
|
try { |
|
|
|
|
TsQRcodeRQ tsRq = TsQRcodeRQ.builder() |
|
|
|
|
.rtnUrl(this.APP_HOST + this.TS_RETURN_URI) |
|
|
|
|
.reqId(confirmKey) |
|
|
|
|
.submittype(idntfNum) |
|
|
|
|
.applyUser(userCi) |
|
|
|
|
.build(); |
|
|
|
|
|
|
|
|
|
// params = JsonUtils.toJson(tsRq);
|
|
|
|
|
/* |
|
|
|
|
|
|
|
|
|
tsdronewallet://kotsa.or.kr
|
|
|
|
|
? type=5 |
|
|
|
|
& rtnUrl= http://121.190.193.50:6081/api/external/laanc/vc/callback
|
|
|
|
|
& reqId=0b42b0af-3875-4a21-b57b-bb93ffcb3cfc |
|
|
|
|
& submittype=C1CM0231251 |
|
|
|
|
& applyUser=dzT9zrm1JJRbrT1oRsUbvXYDfbAtXG5QOZjbIVHPaklSZ2PTw8ojYdJyeTrdQdtKIGFM5Z7xfrN/Crm6iGRLkA== |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
params = UriComponentsBuilder |
|
|
|
|
.fromUriString("tsdronewallet://kotsa.or.kr") |
|
|
|
|
.queryParam("type", tsRq.getType()) |
|
|
|
|
.queryParam("rtnUrl", tsRq.getRtnUrl()) |
|
|
|
|
.queryParam("reqId", tsRq.getReqId()) |
|
|
|
|
.queryParam("submittype", tsRq.getSubmittype()) |
|
|
|
|
.queryParam("applyUser", tsRq.getApplyUser()) |
|
|
|
|
.build() |
|
|
|
|
.toUriString(); |
|
|
|
|
|
|
|
|
|
qr = tsService.createQrcode(params); |
|
|
|
|
} catch (WriterException | IOException e) { |
|
|
|
|
log.error("ERROR: ", e); |
|
|
|
|
throw new BaseException(BaseErrorCode.FAILED, "QR코드 생성 실패"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// db 저장 - confirmKey(uuid)
|
|
|
|
|
ComConfirmBas comConfirmBas = ComConfirmBas.builder() |
|
|
|
|
.confirmKey(confirmKey) |
|
|
|
|
.status("GENERATED") |
|
|
|
|
.targetType("TS_QRCODE") |
|
|
|
|
.rqData(params) |
|
|
|
|
.createUserId(userId) |
|
|
|
|
.createDt(LocalDateTime.now()) |
|
|
|
|
.updateUserId(userId) |
|
|
|
|
.updateDt(LocalDateTime.now()) |
|
|
|
|
.build(); |
|
|
|
|
|
|
|
|
|
confirmDomainService.saveComConfirmBas(comConfirmBas); |
|
|
|
|
|
|
|
|
|
log.info(">>> confirmKey [GENERATED] ", confirmKey); |
|
|
|
|
return LaancTsQRcodeRS.builder() |
|
|
|
|
.qrcode(qr) |
|
|
|
|
.confirmKey(confirmKey) |
|
|
|
|
.build(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|