결제 - 키움결제 적용 1차
This commit is contained in:
@@ -1015,6 +1015,15 @@ public interface BOOrdrMapper {
|
||||
* @param refundVO
|
||||
*/
|
||||
public Integer selectSubsvcRefundAmt(BOOrdrRefundVO refundVO);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 키움결제 GC_ORDER_PG_API_LOG 결과 조회
|
||||
* @param payVO
|
||||
* @return List<DataMap>
|
||||
*/
|
||||
public DataMap selectKiwoomPgApiLog(BOPayVO payVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -191,7 +191,11 @@ public class BOOrdrLogService {
|
||||
pgResult = false;
|
||||
} else {
|
||||
|
||||
if ("kcp".equals(payVO.getPgCmpnyNm())) {
|
||||
if("kiwoom".equals(payVO.getPgCmpnyNm())) {
|
||||
resCd = "0000";
|
||||
message = "결제 승인 성공";
|
||||
//결제실패에 대한 응답은 없음
|
||||
} else if ("kcp".equals(payVO.getPgCmpnyNm())) {
|
||||
resCd = StringUtil.isNullToString(resultMap.get("res_cd"));
|
||||
message = StringUtil.isNullToString(resultMap.get("res_msg"));
|
||||
|
||||
@@ -227,7 +231,7 @@ public class BOOrdrLogService {
|
||||
String logDtlCn = "";
|
||||
String operNm = "";
|
||||
String dvCd = payVO.getDvCd();
|
||||
String setleTyCd = payVO.getSetleTyCd();
|
||||
//String setleTyCd = payVO.getSetleTyCd();
|
||||
if ("02".equals(dvCd)) { // 관리자 주문
|
||||
String mbrNm = "";
|
||||
if (payVO.getMbrNm() != null) {
|
||||
@@ -311,7 +315,7 @@ public class BOOrdrLogService {
|
||||
|
||||
/**
|
||||
* 주문 로그 단순 등록
|
||||
* @param pgApiLogVO
|
||||
* @param logVO
|
||||
*/
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||
public void insertBOOrderLogRegist(BOOrderLogVO logVO, boolean result, String message) {
|
||||
@@ -336,7 +340,7 @@ public class BOOrdrLogService {
|
||||
|
||||
/**
|
||||
* 주문 종기능 로그 등록
|
||||
* @param pgApiLogVO
|
||||
* @param bellVO
|
||||
*/
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||
public void insertBOOrderBellLogRegist(BOOrderLogVO bellVO) {
|
||||
|
||||
@@ -120,18 +120,12 @@ public class BOOrdrService{
|
||||
@Autowired
|
||||
private BOSiteService boSiteService;
|
||||
|
||||
@Autowired
|
||||
private BOGoodsService boGoodsService;
|
||||
|
||||
@Autowired
|
||||
private BOMssageService mssageService;
|
||||
|
||||
@Autowired
|
||||
private BOMbrMapper mbrMapper;
|
||||
|
||||
@Autowired
|
||||
private BOMaMtngMapper mtmgMapper;
|
||||
|
||||
@Autowired
|
||||
private BOSelngprufService selngprufService;
|
||||
|
||||
@@ -150,13 +144,10 @@ public class BOOrdrService{
|
||||
@Autowired
|
||||
private BOSubsvcService subsvcService;
|
||||
|
||||
@Autowired
|
||||
private PropertyService propertyService;
|
||||
|
||||
|
||||
/**
|
||||
* 주문 전체 목록 조회
|
||||
* @param vo(mbrInnb)
|
||||
* @param ordrSrchVO
|
||||
* @return List<DataMap>
|
||||
*/
|
||||
public Map<String, List<DataMap>> selectBOAllOrdrListInqire(BOOrdrSrchVO ordrSrchVO) {
|
||||
@@ -169,7 +160,6 @@ public class BOOrdrService{
|
||||
&& ordrSrchVO.getSrchOrdrSttusCds().length > 0) {
|
||||
for(String srchOrdrSttusCd : ordrSrchVO.getSrchOrdrSttusCds()){
|
||||
ordrSrchVO.setSrchOrdrSttusCd(srchOrdrSttusCd);
|
||||
//resultMap.put("resultList"+ordrSrchVO.getSrchOrdrSttusCd(),mapper.selectBOAllOrdrListInqire(ordrSrchVO));
|
||||
}
|
||||
}
|
||||
log.debug("resultMap : {}", resultMap);
|
||||
@@ -178,7 +168,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 기본배송지 유무 조회
|
||||
* @param crmDlvylcVO
|
||||
* @param map
|
||||
* @return Map<String, String>
|
||||
*/
|
||||
public String selectBOdftDlvylcAt(DataMap map){
|
||||
@@ -197,12 +187,7 @@ public class BOOrdrService{
|
||||
try {
|
||||
// 기존 기본배송지 N 처리
|
||||
mapper.updateBODftDlvylcAt(crmDlvylcVO);
|
||||
// 기본배송지 수정
|
||||
/*int result = mapper.updateBOdftDlvylcAtUpdt(crmDlvylcVO);
|
||||
// 배송지 등록 결과 massage에 담음
|
||||
if (result > 0) {
|
||||
message.put("result", "자주쓰는 배송지 등록 성공");
|
||||
}*/
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e){
|
||||
@@ -213,7 +198,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 기본 배송지 설정
|
||||
* @param BOCrmDlvylcVO
|
||||
* @param crmDlvylcVO
|
||||
*/
|
||||
public Map<String, String> updateBODftDlvylcAtYset(BOCrmDlvylcVO crmDlvylcVO){
|
||||
Map<String, String> message = new HashMap<>();
|
||||
@@ -248,7 +233,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 최근 배송지 목록 조회
|
||||
* @param BOCrmDlvylcVO
|
||||
* @param crmDlvylcVO
|
||||
* @return List<DataMap>
|
||||
*/
|
||||
public List<DataMap> selectBORecentDlvylcListInqire(BOCrmDlvylcVO crmDlvylcVO) {
|
||||
@@ -266,7 +251,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 회원 자주쓰는 배송지 상세 조회
|
||||
* @param vo(adbkInnb)
|
||||
* @param crmDlvylcVO
|
||||
* @return BOCrmDlvylcVO
|
||||
*/
|
||||
public BOCrmDlvylcVO selectBODlvylcUpdtPopupForm(BOCrmDlvylcVO crmDlvylcVO) {
|
||||
@@ -283,7 +268,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 자주쓰는 배송지 등록
|
||||
* @param BOCrmDlvylcVO
|
||||
* @param crmDlvylcVO
|
||||
* @return Integer
|
||||
*/
|
||||
public Map<String, String> insertBODlvylcRegist(BOCrmDlvylcVO crmDlvylcVO) {
|
||||
@@ -302,7 +287,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 자주쓰는 배송지 삭제
|
||||
* @param BOCrmDlvylcVO
|
||||
* @param crmDlvylcVO
|
||||
* @return Map<String, String>
|
||||
*/
|
||||
public Map<String, String> deleteBODlvylc(BOCrmDlvylcVO crmDlvylcVO) {
|
||||
@@ -320,7 +305,7 @@ public class BOOrdrService{
|
||||
}
|
||||
/**
|
||||
* 자주쓰는 배송지 수정
|
||||
* @param BOCrmDlvylcVO
|
||||
* @param crmDlvylcVO
|
||||
* @return Map<String, String>
|
||||
*/
|
||||
public Map<String, String> updateBODlvylc(BOCrmDlvylcVO crmDlvylcVO) {
|
||||
@@ -338,7 +323,7 @@ public class BOOrdrService{
|
||||
}
|
||||
/**
|
||||
* 기본 배송지 체크 시 다른 배송지 N으로 수정
|
||||
* @param BOCrmDlvylcVO
|
||||
* @param crmDlvylc
|
||||
*/
|
||||
public void updateBODftDlvylcAt(BOCrmDlvylcVO crmDlvylc) {
|
||||
mapper.updateBODftDlvylcAt(crmDlvylc);
|
||||
@@ -569,33 +554,6 @@ public class BOOrdrService{
|
||||
// 주문 상태 업데이트
|
||||
orderCommService.commonOrderSttusCdUpdt(orderVO, currOrdrSttusCd);
|
||||
|
||||
// try {
|
||||
// orderCommService.commonOrderSttusCdUpdt(orderVO, currOrdrSttusCd);
|
||||
// } catch(Exception e) {
|
||||
//
|
||||
// }
|
||||
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrder(orderVO); // FM_ORDER 주문 상태 수정
|
||||
//
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderItemOption(orderVO); // FM_ORDER_ITEM_OPTION 주문 상태 수정
|
||||
//
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderShipping(orderVO); // FM_ORDER_SHIPPING 주문 상태 수정
|
||||
|
||||
|
||||
// if (StringUtils.hasText(currOrdrSttusCd) && StringUtils.hasText(ordrSttusCd)) {
|
||||
// if (Integer.parseInt(currOrdrSttusCd) > Integer.parseInt(ordrSttusCd) || "95".equals(ordrSttusCd)) {
|
||||
//// BOOrderLogVO logVO = new BOOrderLogVO();
|
||||
//
|
||||
// logVO.setOrdrInnb(new BigInteger(ordrInnb));
|
||||
// logVO.setSopmalCd(ordrVO.getSopmalCd());
|
||||
// logVO.setLogDvCd("01");
|
||||
// logVO.setDvCd("02");
|
||||
// logVO.setLogSj("되돌리기 [" + currOrdrSttusCdNm + " => " + ordrSttusCdNm + "]");
|
||||
//
|
||||
// purchsMapper.insertOrderLog(logVO);
|
||||
// }
|
||||
// }
|
||||
|
||||
if ("25".equals(ordrSttusCd)) {
|
||||
purchsMapper.updateOrderSetleComptAt(orderVO);
|
||||
}
|
||||
@@ -858,22 +816,6 @@ public class BOOrdrService{
|
||||
* @return DataMap
|
||||
*/
|
||||
public Map<String, Object> selectBOSetleCanclRefndRegist(BOOrdrVO ordrVO) {
|
||||
/*
|
||||
DataMap ordrDtl = mapper.selectOrdrDtl(ordrVO);
|
||||
|
||||
List<DataMap> ordrGoodsList = mapper.selectCanclPaymentGoodsList(ordrVO);
|
||||
|
||||
int totOrdrQy = ordrGoodsList.stream().mapToInt(obj -> (int) obj.get("ordrQy")).sum();
|
||||
|
||||
DataMap content = new DataMap() {{
|
||||
put("ordrDtl", ordrDtl);
|
||||
put("ordrGoodsList", ordrGoodsList);
|
||||
put("totOrdrQy", totOrdrQy);
|
||||
}};
|
||||
return content;
|
||||
*/
|
||||
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
|
||||
BOOrdrDlvyVO ordrDlvyVO = new BOOrdrDlvyVO();
|
||||
@@ -905,7 +847,7 @@ public class BOOrdrService{
|
||||
|
||||
log.debug("여러곳 배송 환불 상품 목록 : {}", shippingList);
|
||||
|
||||
List<DataMap> returnResnList = mapper.selectReturnResnList(ordrDlvyVO);
|
||||
//List<DataMap> returnResnList = mapper.selectReturnResnList(ordrDlvyVO);
|
||||
|
||||
// 공통코드 호출
|
||||
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
|
||||
@@ -1031,7 +973,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 주문 로그 등록
|
||||
* @param BOOrderLogVO
|
||||
* @param logVO
|
||||
* @return void
|
||||
*/
|
||||
public void updateDlvylcInfoLogRegist(BOOrderLogVO logVO) {
|
||||
@@ -2833,8 +2775,6 @@ public class BOOrdrService{
|
||||
spbkVO.setMbrId(ordrVO.getMbrId());
|
||||
|
||||
|
||||
|
||||
|
||||
//구매하기 상품 조회
|
||||
spbkVO.setCartDvCd("02");
|
||||
List<BOGoodsVO> goodsList02 = mapper.selectSpbkGoodsList(spbkVO);
|
||||
@@ -3424,10 +3364,6 @@ public class BOOrdrService{
|
||||
|
||||
LinkedHashMap<String, Object> shippingMap = (LinkedHashMap) param.get("shipping");
|
||||
|
||||
// String ordrAdressZip = StringUtil.isNullToString(param.get("dlvylcZip"));
|
||||
// String dlvylcAreaCd = (String) param.get("dlvylcAreaCd");
|
||||
// String prefcd = (String) param.get("prefcd");
|
||||
|
||||
String ordrAdressZip = StringUtil.isNullToString(shippingMap != null ? shippingMap.get("dlvylcZip") : "");
|
||||
String dlvylcAreaCd = StringUtil.isNullToString(shippingMap != null ? shippingMap.get("dlvylcAreaCd") : "");
|
||||
String prefcd = StringUtil.isNullToString(shippingMap != null ? shippingMap.get("prefcd") : "");
|
||||
@@ -3861,6 +3797,11 @@ public class BOOrdrService{
|
||||
return orderService.insertMngrOrdrRegist(param, MemberJwtContextHolder.getMemberInfo());
|
||||
}
|
||||
|
||||
|
||||
/* ===============================================
|
||||
무통장 결제 정보 등록
|
||||
================================================== */
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 무통장 결제 정보 등록
|
||||
* @param payVO
|
||||
@@ -3930,55 +3871,6 @@ public class BOOrdrService{
|
||||
|
||||
purchsMapper.updateOrderSetleNoBank(orderSetleVO);
|
||||
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrder(orderVO); // FM_ORDER 주문 상태 수정
|
||||
//
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderItemOption(orderVO); // FM_ORDER_ITEM_OPTION 주문 상태 수정
|
||||
//
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderShipping(orderVO); // FM_ORDER_SHIPPING 주문 상태 수정
|
||||
//
|
||||
//
|
||||
// // 2. 쿠폰 사용 처리 ===============================================================
|
||||
// try {
|
||||
// BODwldCouponVO dwldCouponVO = new BODwldCouponVO();
|
||||
// dwldCouponVO.setSopmalCd(payVO.getSopmalCd());
|
||||
// dwldCouponVO.setOrdrInnb(payVO.getOrderId());
|
||||
// couponService.updateBOUseCouponProcs(dwldCouponVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 쿠폰 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("쿠폰 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
//
|
||||
// // 3.사용 마일리지 조회 및 할인 차감 =================================================
|
||||
// BOMlgVO mlgVO = purchsMapper.selectOrdrMlgUse(orderVO);
|
||||
// if (mlgVO != null) {
|
||||
// BigDecimal accmlmnyAmt = mlgVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOMlgUse(mlgVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("마일리지 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 4. (2025-06-20 CJH 추가) 사용 GC 머니 차감 =================================================
|
||||
// BOCashVO cashVO = purchsMapper.selectOrdrCashMlgUse(payVO);
|
||||
// log.debug("캐쉬 VO : {}", cashVO);
|
||||
// if (cashVO != null) {
|
||||
// BigDecimal accmlmnyAmt = cashVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOCashUse(cashVO); // 사용 마일리지 할인 차감
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 충전형 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("GC 머니 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
try {
|
||||
selectBOOrdrMssageSndngProcs(orderVO);
|
||||
} catch (Exception e) {
|
||||
@@ -4002,6 +3894,11 @@ public class BOOrdrService{
|
||||
return content;
|
||||
}
|
||||
|
||||
|
||||
/* ===============================================
|
||||
KCP 결제 정보 등록
|
||||
================================================== */
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > KCP 거래등록 정보 조회
|
||||
* @param param
|
||||
@@ -4065,63 +3962,15 @@ public class BOOrdrService{
|
||||
orderVO.setOrdrSttusCd("25"); // 주문상태코드(25:결제확인)
|
||||
}
|
||||
|
||||
// // 1-1. FM_ORDER 주문 상태 수정 ==================================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrder(orderVO);
|
||||
// // 1-2. FM_ORDER_ITEM_OPTION 주문 상태 수정 =====================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderItemOption(orderVO);
|
||||
// // 1-3. FM_ORDER_SHIPPING 주문 상태 수정 ========================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderShipping(orderVO);
|
||||
}
|
||||
|
||||
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
||||
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
||||
|
||||
// // 2. 쿠폰 사용 처리 ===============================================================
|
||||
// try {
|
||||
// BODwldCouponVO dwldCouponVO = new BODwldCouponVO();
|
||||
// dwldCouponVO.setSopmalCd(payVO.getSopmalCd());
|
||||
// dwldCouponVO.setOrdrInnb(payVO.getOrderId());
|
||||
// couponService.updateBOUseCouponProcs(dwldCouponVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 쿠폰 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("쿠폰 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
//
|
||||
// // 3.사용 마일리지 조회 및 할인 차감 =================================================
|
||||
// BOMlgVO mlgVO = purchsMapper.selectOrdrMlgUse(orderVO);
|
||||
// if (mlgVO != null) {
|
||||
// BigDecimal accmlmnyAmt = mlgVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOMlgUse(mlgVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("마일리지 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 4. (2025-06-20 CJH 추가) 사용 GC 머니 차감 =================================================
|
||||
// BOCashVO cashVO = purchsMapper.selectOrdrCashMlgUse(payVO);
|
||||
// log.debug("캐쉬 VO : {}", cashVO);
|
||||
// if (cashVO != null) {
|
||||
// BigDecimal accmlmnyAmt = cashVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOCashUse(cashVO); // 사용 마일리지 할인 차감
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 충전형 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("GC 머니 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
/* ===============================================
|
||||
결제 API
|
||||
================================================== */
|
||||
Map<String, Object> kcpMap = payService.insertKcpPay(payVO);
|
||||
|
||||
|
||||
if (!CollectionUtils.isEmpty(kcpMap)) {
|
||||
String response = StringUtil.isNullToString(kcpMap.get("response"));
|
||||
Map<String, Object> resultMap = new ObjectMapper().readValue(response, Map.class);
|
||||
@@ -4142,23 +3991,6 @@ public class BOOrdrService{
|
||||
orderPgLogVO.setEscwAt(resultMap.get("escw_yn") != null ? resultMap.get("escw_yn").toString() : "N");
|
||||
orderPgLogVO.setDelngAmt(resultMap.get("amount") != null ? new BigDecimal(resultMap.get("amount").toString()) : BigDecimal.valueOf(0));
|
||||
|
||||
// 금액 검증 - PG사 결제 승인전 하고 있음
|
||||
/*BOOrdrVO paramVO = new BOOrdrVO();
|
||||
paramVO.setSopmalCd(payVO.getSopMalCd());
|
||||
paramVO.setOrdrInnb(payVO.getOrderId());
|
||||
DataMap ordrMap = mapper.selectOrdrGoodsDtllTot(paramVO);
|
||||
if (!CollectionUtils.isEmpty(resultMap)) {
|
||||
BigDecimal setleAmt = (BigDecimal) ordrMap.get("setleAmt");
|
||||
BigDecimal amount = new BigDecimal((String) resultMap.get("amount"));
|
||||
|
||||
if (setleAmt.intValue() == amount.intValue()) {
|
||||
orderPgLogVO.setDelngAmt(amount);
|
||||
} else {
|
||||
insertSetleFailLog(payVO.getSopMalCd(), payVO.getOrderId(), "000", "KCP 결제 실패 [결제 금액 매칭 오류]"); // 결제 실패 로그 등록
|
||||
throw new WnbtRestException("KCP 결제 실패 [결제 금액 매칭 오류]");
|
||||
}
|
||||
}*/
|
||||
|
||||
log.debug("orderPgLogVO1===={}",orderPgLogVO);
|
||||
|
||||
if ("01".equals(payVO.getSetleTyCd()) || "10".equals(payVO.getSetleTyCd())) { //카드/간편결제카드(01), 페이코(10)
|
||||
@@ -4404,6 +4236,10 @@ public class BOOrdrService{
|
||||
// }
|
||||
|
||||
|
||||
/* ===============================================
|
||||
TOSS 결제 정보 등록
|
||||
================================================== */
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > TOSS 결제 정보 등록
|
||||
* @param payVO
|
||||
@@ -4459,60 +4295,10 @@ public class BOOrdrService{
|
||||
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
||||
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
||||
|
||||
// // 1-1. FM_ORDER 주문 상태 수정 ==============================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrder(orderVO);
|
||||
// // 1-2. FM_ORDER_ITEM_OPTION 주문 상태 수정 =====================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderItemOption(orderVO);
|
||||
// // 1-3. FM_ORDER_SHIPPING 주문 상태 수정 ========================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderShipping(orderVO);
|
||||
//
|
||||
//
|
||||
// // 2. 쿠폰 사용 처리 ===============================================================
|
||||
// try {
|
||||
// BODwldCouponVO dwldCouponVO = new BODwldCouponVO();
|
||||
// dwldCouponVO.setSopmalCd(payVO.getSopmalCd());
|
||||
// dwldCouponVO.setOrdrInnb(payVO.getOrderId());
|
||||
// couponService.updateBOUseCouponProcs(dwldCouponVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 쿠폰 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("쿠폰 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
//
|
||||
// // 3.사용 마일리지 조회 및 할인 차감 =================================================
|
||||
// BOMlgVO mlgVO = purchsMapper.selectOrdrMlgUse(orderVO);
|
||||
// if (mlgVO != null) {
|
||||
// BigDecimal accmlmnyAmt = mlgVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOMlgUse(mlgVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("마일리지 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 4. (2025-06-20 CJH 추가) 사용 GC 머니 차감 =================================================
|
||||
// BOCashVO cashVO = purchsMapper.selectOrdrCashMlgUse(payVO);
|
||||
// log.debug("캐쉬 VO : {}", cashVO);
|
||||
// if (cashVO != null) {
|
||||
// BigDecimal accmlmnyAmt = cashVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOCashUse(cashVO); // 사용 마일리지 할인 차감
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 충전형 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("GC 머니 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
/* ===============================================
|
||||
결제 API
|
||||
================================================== */
|
||||
Map<String, Object> tossPayMap = payService.insertTossPay(payVO);
|
||||
|
||||
|
||||
if (!CollectionUtils.isEmpty(tossPayMap)) {
|
||||
String response = StringUtil.isNullToString(tossPayMap.get("response"));
|
||||
Map<String, Object> resultMap = new ObjectMapper().readValue(response, Map.class);
|
||||
@@ -4550,24 +4336,6 @@ public class BOOrdrService{
|
||||
orderPgLogVO.setVirtlAcntVrifyKy(StringUtil.isNullToString(rctMap.get("url")));
|
||||
}
|
||||
|
||||
// 금액 검증 - PG사 결제 승인전 하고 있음
|
||||
/*BOOrdrVO ordrVO = new BOOrdrVO();
|
||||
ordrVO.setSopmalCd(payVO.getSopmalCd());
|
||||
ordrVO.setOrdrInnb(payVO.getOrderId());
|
||||
DataMap ordrMap = mapper.selectOrdrGoodsDtllTot(ordrVO);
|
||||
if (!CollectionUtils.isEmpty(resultMap)) {
|
||||
BigDecimal setleAmt = (BigDecimal) ordrMap.get("setleAmt");
|
||||
BigDecimal totalAmount = BigDecimal.valueOf((int) resultMap.get("totalAmount"));
|
||||
|
||||
if (setleAmt.intValue() == totalAmount.intValue()) {
|
||||
orderPgLogVO.setDelngAmt(totalAmount);
|
||||
} else {
|
||||
insertSetleFailLog(payVO.getSopmalCd(), payVO.getOrderId(), "0000", "토스 결제 실패 [결제 금액 매칭 오류]"); // 결제 실패 로그 등록
|
||||
|
||||
throw new WnbtRestException("토스 결제 실패 [결제 금액 매칭 오류]");
|
||||
}
|
||||
}*/
|
||||
|
||||
if ("01".equals(payVO.getSetleTyCd()) || "10".equals(payVO.getSetleTyCd())) { // 카드(01), 페이코(10)
|
||||
LinkedHashMap cartMap = (LinkedHashMap) resultMap.get("card"); //카드결제(일반카드, 간편결제카드, 간편결제카드+적립식)
|
||||
|
||||
@@ -4849,6 +4617,9 @@ public class BOOrdrService{
|
||||
// }
|
||||
|
||||
|
||||
/* ===============================================
|
||||
TOSSPAY 결제 정보 등록
|
||||
================================================== */
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > TOSSPAY 결제 정보 등록
|
||||
@@ -4865,17 +4636,6 @@ public class BOOrdrService{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 주문 후 장바구니 비우기
|
||||
* @param orderVO
|
||||
*/
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||
public void deleteBOCart(BOOrderVO orderVO) throws Exception {
|
||||
purchsMapper.deleteCart(orderVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > TOSSPAY 결제 정보 등록
|
||||
* @param payVO
|
||||
@@ -4910,62 +4670,11 @@ public class BOOrdrService{
|
||||
|
||||
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
||||
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
||||
//
|
||||
// // 1-1. FM_ORDER 주문 상태 수정 ==============================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrder(orderVO);
|
||||
// // 1-2. FM_ORDER_ITEM_OPTION 주문 상태 수정 ==================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderItemOption(orderVO);
|
||||
// // 1-3. FM_ORDER_SHIPPING 주문 상태 수정 =====================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderShipping(orderVO);
|
||||
//
|
||||
// // 2. 쿠폰 사용 처리 ==========================================================
|
||||
// try {
|
||||
// BODwldCouponVO dwldCouponVO = new BODwldCouponVO();
|
||||
// dwldCouponVO.setSopmalCd(payVO.getSopmalCd());
|
||||
// dwldCouponVO.setOrdrInnb(payVO.getOrderId());
|
||||
// couponService.updateBOUseCouponProcs(dwldCouponVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 쿠폰 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("쿠폰 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
//
|
||||
// // 3.사용 마일리지 조회 및 할인 차감 =============================================
|
||||
// BOMlgVO mlgVO = purchsMapper.selectOrdrMlgUse(orderVO);
|
||||
// if (mlgVO != null) {
|
||||
// BigDecimal accmlmnyAmt = mlgVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOMlgUse(mlgVO); // 사용 마일리지 할인 차감
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("마일리지 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 4. (2025-06-20 CJH 추가) 사용 GC 머니 차감 =================================================
|
||||
// BOCashVO cashVO = purchsMapper.selectOrdrCashMlgUse(payVO);
|
||||
// log.debug("캐쉬 VO : {}", cashVO);
|
||||
// if (cashVO != null) {
|
||||
// BigDecimal accmlmnyAmt = cashVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOCashUse(cashVO); // 사용 마일리지 할인 차감
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 충전형 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("GC 머니 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
/* ===============================================
|
||||
5. 결제 API
|
||||
================================================== */
|
||||
Map<String, Object> tossPayMap = payService.insertTossPay(payVO);
|
||||
|
||||
|
||||
if (!CollectionUtils.isEmpty(tossPayMap)) {
|
||||
String response = StringUtil.isNullToString(tossPayMap.get("response"));
|
||||
Map<String, Object> resultMap = new ObjectMapper().readValue(response, Map.class);
|
||||
@@ -5204,6 +4913,10 @@ public class BOOrdrService{
|
||||
// }
|
||||
|
||||
|
||||
/* ===============================================
|
||||
KCP 카드 수기 결제 정보 등록
|
||||
================================================== */
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > KCP 카드 수기 결제 정보 등록
|
||||
* @param payVO
|
||||
@@ -5254,59 +4967,10 @@ public class BOOrdrService{
|
||||
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
||||
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
||||
|
||||
// // 1-1. FM_ORDER 주문 상태 수정 ==============================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrder(orderVO);
|
||||
// // 1-2. FM_ORDER_ITEM_OPTION 주문 상태 수정 =====================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderItemOption(orderVO);
|
||||
// // 1-3. FM_ORDER_SHIPPING 주문 상태 수정 ========================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderShipping(orderVO);
|
||||
//
|
||||
//
|
||||
// // 2. 쿠폰 사용 처리 ===============================================================
|
||||
// try {
|
||||
// BODwldCouponVO dwldCouponVO = new BODwldCouponVO();
|
||||
// dwldCouponVO.setSopmalCd(payVO.getSopmalCd());
|
||||
// dwldCouponVO.setOrdrInnb(payVO.getOrderId());
|
||||
// couponService.updateBOUseCouponProcs(dwldCouponVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 쿠폰 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("쿠폰 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
//
|
||||
// // 3.사용 마일리지 조회 및 할인 차감 =================================================
|
||||
// BOMlgVO mlgVO = purchsMapper.selectOrdrMlgUse(orderVO);
|
||||
// if (mlgVO != null) {
|
||||
// BigDecimal accmlmnyAmt = mlgVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOMlgUse(mlgVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("마일리지 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 4. (2025-06-20 CJH 추가) 사용 GC 머니 차감 =================================================
|
||||
// BOCashVO cashVO = purchsMapper.selectOrdrCashMlgUse(payVO);
|
||||
// log.debug("캐쉬 VO : {}", cashVO);
|
||||
// if (cashVO != null) {
|
||||
// BigDecimal accmlmnyAmt = cashVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOCashUse(cashVO); // 사용 마일리지 할인 차감
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 충전형 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("GC 머니 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
/* ===============================================
|
||||
결제 API
|
||||
================================================== */
|
||||
Map<String, Object> kcpMap = payService.insertKcpPayKeyin(payVO);
|
||||
|
||||
if (!CollectionUtils.isEmpty(kcpMap)) {
|
||||
String response = StringUtil.isNullToString(kcpMap.get("response"));
|
||||
Map<String, Object> resultMap = new ObjectMapper().readValue(response, Map.class);
|
||||
@@ -5320,24 +4984,6 @@ public class BOOrdrService{
|
||||
orderPgLogVO.setEscwAt(resultMap.get("escw_yn") != null ? resultMap.get("escw_yn").toString() : "N");
|
||||
orderPgLogVO.setDelngAmt(resultMap.get("amount") != null ? new BigDecimal(resultMap.get("amount").toString()) : BigDecimal.valueOf(0));
|
||||
|
||||
// 금액 검증 - PG사 결제 승인전 하고 있음
|
||||
/*BOOrdrVO paramVO = new BOOrdrVO();
|
||||
paramVO.setSopmalCd(payVO.getSopmalCd());
|
||||
paramVO.setOrdrInnb(payVO.getOrderId());
|
||||
DataMap ordrMap = mapper.selectOrdrGoodsDtllTot(paramVO);
|
||||
|
||||
if (!CollectionUtils.isEmpty(resultMap)) {
|
||||
BigDecimal setleAmt = (BigDecimal) ordrMap.get("setleAmt");
|
||||
BigDecimal amount = new BigDecimal((String) resultMap.get("amount"));
|
||||
|
||||
if (setleAmt.intValue() == amount.intValue()) {
|
||||
orderPgLogVO.setDelngAmt(amount);
|
||||
} else {
|
||||
insertSetleFailLog(payVO.getSopmalCd(), payVO.getOrderId(), "0000", "KCP 결제 실패 [결제 금액 매칭 오류]"); // 결제 실패 로그 등록
|
||||
throw new WnbtRestException("KCP 결제 실패 [결제 금액 매칭 오류]");
|
||||
}
|
||||
}*/
|
||||
|
||||
orderPgLogVO.setApvlnb(StringUtil.isNullToString(resultMap.get("app_no")));
|
||||
orderPgLogVO.setCardCmpnyCd(StringUtil.isNullToString(resultMap.get("card_cd")));
|
||||
orderPgLogVO.setCardCmpnyNm(StringUtil.isNullToString(resultMap.get("card_name")));
|
||||
@@ -5513,6 +5159,9 @@ public class BOOrdrService{
|
||||
// }
|
||||
|
||||
|
||||
/* ===============================================
|
||||
TOSS 카드 수기 결제 정보 등록
|
||||
================================================== */
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > TOSS 카드 수기 결제 정보 등록
|
||||
@@ -5562,59 +5211,10 @@ public class BOOrdrService{
|
||||
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
||||
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
||||
|
||||
// // 1-1. FM_ORDER 주문 상태 수정 ==============================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrder(orderVO);
|
||||
// // 1-2. FM_ORDER_ITEM_OPTION 주문 상태 수정 ==================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderItemOption(orderVO);
|
||||
// // 1-3. FM_ORDER_SHIPPING 주문 상태 수정 =====================================
|
||||
// purchsMapper.updateOrdrSttusCdByFmOrderShipping(orderVO);
|
||||
//
|
||||
// // 2. 쿠폰 사용 처리 ===============================================================
|
||||
// try {
|
||||
// BODwldCouponVO dwldCouponVO = new BODwldCouponVO();
|
||||
// dwldCouponVO.setSopmalCd(payVO.getSopmalCd());
|
||||
// dwldCouponVO.setOrdrInnb(payVO.getOrderId());
|
||||
// couponService.updateBOUseCouponProcs(dwldCouponVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 쿠폰 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("쿠폰 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
//
|
||||
// // 3.사용 마일리지 조회 및 할인 차감 =================================================
|
||||
// BOMlgVO mlgVO = purchsMapper.selectOrdrMlgUse(orderVO);
|
||||
// if (mlgVO != null) {
|
||||
// BigDecimal accmlmnyAmt = mlgVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOMlgUse(mlgVO);
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("마일리지 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 4. (2025-06-20 CJH 추가) 사용 GC 머니 차감 =================================================
|
||||
// BOCashVO cashVO = purchsMapper.selectOrdrCashMlgUse(payVO);
|
||||
// log.debug("캐쉬 VO : {}", cashVO);
|
||||
// if (cashVO != null) {
|
||||
// BigDecimal accmlmnyAmt = cashVO.getAccmlmnyAmt();
|
||||
//
|
||||
// if (0 < accmlmnyAmt.intValue()) {
|
||||
// try {
|
||||
// mlgService.insertBOCashUse(cashVO); // 사용 마일리지 할인 차감
|
||||
// } catch (Exception e) {
|
||||
// log.debug("사용 충전형 마일리지 처리 실패", e.getMessage());
|
||||
// throw new WnbtRestException("GC 머니 사용에 실패했습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
/* ===============================================
|
||||
결제 API
|
||||
================================================== */
|
||||
Map<String, Object> tossPayMap = payService.insertTossPayKeyin(payVO);
|
||||
|
||||
|
||||
if (!CollectionUtils.isEmpty(tossPayMap)) {
|
||||
String response = StringUtil.isNullToString(tossPayMap.get("response"));
|
||||
Map<String, Object> resultMap = new ObjectMapper().readValue(response, Map.class);
|
||||
@@ -5647,27 +5247,6 @@ public class BOOrdrService{
|
||||
orderPgLogVO.setVirtlAcntVrifyKy(StringUtil.isNullToString(rctMap.get("url")));
|
||||
}
|
||||
|
||||
// 금액 검증 - PG사 결제 승인전 하고 있음
|
||||
/*BOOrdrVO paramVO = new BOOrdrVO();
|
||||
|
||||
paramVO.setSopmalCd(payVO.getSopmalCd());
|
||||
paramVO.setOrdrInnb(payVO.getOrderId());
|
||||
|
||||
DataMap ordrMap = mapper.selectOrdrGoodsDtllTot(paramVO);
|
||||
|
||||
if (!CollectionUtils.isEmpty(resultMap)) {
|
||||
BigDecimal setleAmt = (BigDecimal) ordrMap.get("setleAmt");
|
||||
BigDecimal totalAmount = BigDecimal.valueOf((int) resultMap.get("totalAmount"));
|
||||
|
||||
if (setleAmt.intValue() == totalAmount.intValue()) {
|
||||
orderPgLogVO.setDelngAmt(totalAmount);
|
||||
} else {
|
||||
insertSetleFailLog(payVO.getSopmalCd(), payVO.getOrderId(), "0000", "토스 결제 실패 [결제 금액 매칭 오류]"); // 결제 실패 로그 등록
|
||||
|
||||
throw new WnbtRestException("토스 결제 실패 [결제 금액 매칭 오류]");
|
||||
}
|
||||
}*/
|
||||
|
||||
LinkedHashMap cartMap = (LinkedHashMap) resultMap.get("card");
|
||||
|
||||
if (!CollectionUtils.isEmpty(resultMap)) {
|
||||
@@ -5850,6 +5429,137 @@ public class BOOrdrService{
|
||||
// }
|
||||
|
||||
|
||||
/* ===============================================
|
||||
KIWOOM 결제 정보 등록
|
||||
================================================== */
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > KIWOOM 결제 정보 등록
|
||||
* @param payVO
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
@Transactional
|
||||
public Map<String, Object> insertKiwoomSetle(BOPayVO payVO) throws Exception {
|
||||
Map<String, Object> message = new HashMap<>() ;
|
||||
|
||||
message = insertKiwoomSetle1(payVO); // 결제 관련 처리
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > KIWOOM 결제 정보 등록
|
||||
* @param payVO
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
@Transactional
|
||||
public Map<String, Object> insertKiwoomSetle1(BOPayVO payVO) throws Exception {
|
||||
|
||||
boolean payResult = true;
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
BOOrderPgLogVO orderPgLogVO = new BOOrderPgLogVO();
|
||||
|
||||
orderPgLogVO.setOrdrInnb(new BigInteger(payVO.getOrderId()));
|
||||
orderPgLogVO.setSopmalCd(payVO.getSopmalCd());
|
||||
orderPgLogVO.setPgCmpnyNm(payVO.getPgCmpnyNm());
|
||||
orderPgLogVO.setSetlerNm(payVO.getSetlerNm());
|
||||
orderPgLogVO.setSetleMthCd(payVO.getSetleTyCd());
|
||||
|
||||
try{
|
||||
|
||||
// 1. 주문상태 수정 =====================================================
|
||||
BOOrderVO orderVO = new BOOrderVO();
|
||||
orderVO.setSopmalCd(payVO.getSopmalCd());
|
||||
orderVO.setOrdrInnb(new BigInteger(payVO.getOrderId()));
|
||||
orderVO.setOrdrSttusCd("25"); // 주문상태코드(25:결제확인)
|
||||
|
||||
if (StringUtils.hasText(payVO.getMbrInnb())) {
|
||||
orderVO.setMbrInnb(new BigInteger(payVO.getMbrInnb()));
|
||||
}
|
||||
|
||||
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
||||
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
||||
|
||||
/* ===============================================
|
||||
결제 API >> DB select로 진행함
|
||||
================================================== */
|
||||
// todo :: api 연결이 아닌 db셀렉트로 변경.
|
||||
DataMap kiwoomPayMap = mapper.selectKiwoomPgApiLog(payVO);//payService.insertTossPayKeyin(payVO);
|
||||
if (!CollectionUtils.isEmpty(kiwoomPayMap)) {
|
||||
String response = StringUtil.isNullToString(kiwoomPayMap.get("rsltParam"));
|
||||
Map<String, Object> resultMap = new ObjectMapper().readValue(response, Map.class);
|
||||
|
||||
if (!CollectionUtils.isEmpty(resultMap)) {
|
||||
|
||||
/* ===============================================
|
||||
5. FM_ORDER_PG_LOG 등록값 셋팅
|
||||
================================================== */
|
||||
orderPgLogVO.setDelngNb(StringUtil.isNullToString(resultMap.get("DAOUTRX"))); // 거래번호 (결제키)
|
||||
orderPgLogVO.setConfmDt(selectDateFormat(StringUtil.isNullToString(resultMap.get("SETTDATE")))); // 승인일시
|
||||
orderPgLogVO.setApvlnb(StringUtil.isNullToString(resultMap.get("AUTHNO"))); //승인번호
|
||||
orderPgLogVO.setCardCmpnyCd(StringUtil.isNullToString(resultMap.get("CARDCODE"))); //카드사코드
|
||||
orderPgLogVO.setCardCmpnyNm(StringUtil.isNullToString(bOMaComncdService.selectBOCommcdDetail("TOSS_CARD_CD",orderPgLogVO.getCardCmpnyCd()))); //카드사명
|
||||
orderPgLogVO.setNintrAt((boolean) resultMap.get("NOINTFLAG") ? "Y" : "N"); //무이자여부
|
||||
orderPgLogVO.setInstlmtMtCnt(resultMap.get("INSTALL") != null ? Integer.parseInt(resultMap.get("INSTALL").toString()):0); //할부개월수
|
||||
|
||||
// todo ::: 주문금액을 api테이블과 넘어온 값이랑 비교해야 처리필요
|
||||
//if(!CollectionUtils.isEmpty(resultMap)) {} else {
|
||||
// throw new WnbtRestException("토스 결제 실패 [결제 금액 매칭 오류]");
|
||||
// }
|
||||
orderPgLogVO.setDelngAmt(resultMap.get("AMOUNT") != null ? new BigDecimal(resultMap.get("AMOUNT").toString()) : BigDecimal.valueOf(0));
|
||||
|
||||
orderPgLogVO.setEscwAt("N"); // 에스크로여부
|
||||
orderPgLogVO.setVirtlAcntVrifyKy(""); //매출증빙영수증URL
|
||||
orderPgLogVO.setRsltMssageCn("0000");
|
||||
orderPgLogVO.setRsltCd("정상처리-카드거래");
|
||||
|
||||
// 6. FM_ORDER_SETLE 수정 ==============================================
|
||||
BOOrderSetleVO orderSetleVO = new BOOrderSetleVO();
|
||||
orderSetleVO.setSopmalCd(payVO.getSopmalCd());
|
||||
orderSetleVO.setOrdrInnb(new BigInteger(payVO.getOrderId()));
|
||||
orderSetleVO.setPgInnb(orderPgLogVO.getDelngNb());
|
||||
orderSetleVO.setCredtcardApvlnb(orderPgLogVO.getApvlnb());
|
||||
orderSetleVO.setSetleTyCd(payVO.getSetleTyCd());
|
||||
//orderSetleVO.setSetleMid(StringUtil.isNullToString(mapper.selectBOSopSetleMidKeyInqire(payVO))); // 쇼핑몰 결제 MID(상점키) 조회
|
||||
orderSetleVO.setSetleMid("CFO20585"); //todo : paylink 관련 정리 후 db형으로 바꿈
|
||||
|
||||
purchsMapper.updateOrderSetle(orderSetleVO);
|
||||
|
||||
content.put("status", "0");
|
||||
content.put("message", "키움 결제 정보 등록을 완료 하였습니다.");
|
||||
}
|
||||
} else {
|
||||
throw new WnbtRestException("키움 결제 수신 정보를 찾을 수 없어 결제가 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
}
|
||||
|
||||
try {
|
||||
selectBOOrdrMssageSndngProcs(orderVO);
|
||||
} catch (Exception e) {
|
||||
log.debug("{} 메시지 발송 실패", payVO.getOrderId());
|
||||
}
|
||||
|
||||
} catch (WnbtRestException wre) {
|
||||
log.error("insertKiwoomSetle1 WnbtRestException : ", wre);
|
||||
payResult = false;
|
||||
throw wre;
|
||||
} catch (Exception wre) {
|
||||
log.error("insertKiwoomSetle1 Exception : ", wre);
|
||||
payResult = false;
|
||||
throw wre;
|
||||
} finally {
|
||||
log.info("insertKiwoomSetle1 order finally !!!!! {} ", payVO.getOrderId());
|
||||
// FM_ORDER_PG_LOG 등록
|
||||
ordrLogService.insertBOOrderPgLog(orderPgLogVO);
|
||||
// 주문 로그
|
||||
ordrLogService.insertSetleOrderLog(payVO, payResult, "0000", "키움 결제 실패 [결제 정보 NULL]");
|
||||
}
|
||||
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -6017,6 +5727,17 @@ public class BOOrdrService{
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 주문 후 장바구니 비우기
|
||||
* @param orderVO
|
||||
*/
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||
public void deleteBOCart(BOOrderVO orderVO) throws Exception {
|
||||
purchsMapper.deleteCart(orderVO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 주문완료 정보 조회
|
||||
* @param ordrVO
|
||||
@@ -6707,7 +6428,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 상품상세 > 기존 장바구니 상품정보 삭제
|
||||
* @param goodsVOList
|
||||
* @param spbkVO
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
@Transactional
|
||||
@@ -7194,7 +6915,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 배송지 조회
|
||||
* @param payVO
|
||||
* @param vo
|
||||
*/
|
||||
public DataMap selectBOOrdrDlvylc(BOOrdrShippingVO vo) {
|
||||
DataMap map = new DataMap();
|
||||
@@ -7593,7 +7314,7 @@ public class BOOrdrService{
|
||||
|
||||
/**
|
||||
* 주문 메세지 처리
|
||||
* @param payVO
|
||||
* @param orderVO
|
||||
* @return
|
||||
*/
|
||||
public void selectBOOrdrMssageSndngProcs (BOOrderVO orderVO) throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user