Ver Fonte

보증보험정보 API 연동

tsit14 há 5 anos atrás
pai
commit
80332215c4

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfOrderDao.java

@@ -136,4 +136,14 @@ public interface TsfOrderDao {
 	 * @since 2021.04.23
 	 */
 	void createGiftcartReceipt(GiftCard param);
+	
+	/**
+	 * 보증보험 API 연동위한 정보조회
+	 *
+	 * @param Order
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2021. 05. 10
+	 */
+	Collection<Order> getGoodsInfoForInsurance(Order order);
 }

+ 62 - 3
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -875,7 +875,7 @@ public class TsfOrderService {
 			param.setIfYn("F");			// 인터페이스 송부 실패
 		}
 
-		coreOrderDao.createInsurance(param);
+		//coreOrderDao.createInsurance(param);
 
 		return "SUCCESS";
 	}
@@ -947,8 +947,6 @@ public class TsfOrderService {
 	@Transactional("shopTxnManager")
 	public String deleteCartOrdNo(Order order) {
 		
-		log.info("order.getOrdNo() ::: {}", order.getOrdNo());
-		
 		// 주문번호 존재할때만 실행
 		if (order.getOrdNo() > 0) {
 			// 장바구니 이력등록
@@ -965,5 +963,66 @@ public class TsfOrderService {
 		return "SUCCESS";
 	}
 	
+	/**
+	 * 보증보험정보 update
+	 * @param param
+	 * @author xodud1202
+	 * @since 2021. 05. 10
+	 */
+	@Transactional("shopTxnManager")
+	public String updateInsurance(Order order) {
+		// 주문번호 존재할때만 실행
+		if (order.getOrdNo() > 0) {
+			// 보증보험 API 연동위한 정보조회
+			Collection<Order> goodsInfoList = orderDao.getGoodsInfoForInsurance(order);
+			
+			if (goodsInfoList.size() > 0) {
+				String[] goodsNameArr 		= new String[goodsInfoList.size()];
+				String[] goodsPriceArr 		= new String[goodsInfoList.size()];
+				String[] goodsQuantityArr 	= new String[goodsInfoList.size()];
+				
+				int realOrdAmt 				= 0;
+				int index 					= 0;
+				
+				for (Order goodsInfo : goodsInfoList) {
+					goodsNameArr[index] 		= goodsInfo.getGoodsNm();
+					goodsPriceArr[index] 		= String.valueOf(goodsInfo.getRealOrdAmt());
+					goodsQuantityArr[index] 	= String.valueOf(goodsInfo.getOrdQty());
+					
+					realOrdAmt = realOrdAmt + goodsInfo.getRealOrdAmt();
+					
+					if (index == 0) {
+						order.setBirthYmd(goodsInfo.getBirthGen());										// 생년월일 + 성별(남자 : 1, 여자 : 2)
+						order.setPayMeans(goodsInfo.getPayMeans());										// 무통장입금 or 계좌이체
+						order.setBankNm(goodsInfo.getBankNm());											// 은행명  >> PG 송부 후 result에서 값 입력하면됨
+						order.setOrdNm(goodsInfo.getOrdNm());											// 주문자명
+						order.setVaNo(goodsInfo.getVaNo());												// 가상계좌번호
+						order.setOrdPhnno(goodsInfo.getOrdPhnno());										// 주문자전화2 ("-" 포함)
+						order.setOrdEmail(goodsInfo.getOrdEmail());										// 주문자이메일
+						order.setRecipNm(goodsInfo.getRecipNm());										// 수령인명
+						order.setRecipPhnno(goodsInfo.getRecipPhnno());									// 수령인휴대폰번호
+						order.setRecipZipcode(goodsInfo.getRecipZipcode());								// 주문자우편번호
+						order.setRecipAddr(goodsInfo.getRecipBaseAddr() + goodsInfo.getRecipDtlAddr());	// 주문자주소
+						order.setCustNo(order.getCustNo());												// 고객번호
+					}
+						
+					index++;
+				}
+				
+				order.setItemNmArr(goodsNameArr);		// 상품명 배열
+				order.setGoodsPriceArr(goodsPriceArr);	// 상품별 가격 배열
+				order.setItemQtyArr(goodsQuantityArr);	// 상품별 수량 배열
+				order.setOrdNo(order.getOrdNo());		// 주문번호
+				order.setRealOrdAmt(realOrdAmt);		// 결제금액
+				
+				if (TscConstants.PayMeans.ACCOUNT_TRANSFER.value().equals(order.getPayMeans()) || TscConstants.PayMeans.BANK_DEPOSIT.value().equals(order.getPayMeans())) {
+					uSafeGuaranteeInsurance(order);
+				}
+			}
+		}
+
+		return "SUCCESS";
+	}
+	
 	
 }

+ 2 - 51
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -826,57 +826,8 @@ public class TsfOrderController extends TsfBaseController {
 		// 4. 2021.05.10 장바구니정보 삭제
 		orderService.deleteCartOrdNo(order);
 		
-		// TODO 4. 보증보험 API 연동
-		//orderDao.createInsurance(order);
-
-		/*
-		 * temp.setItemNmArr(goodsNameArr);			// 상품명 배열
-		 * temp.setGoodsPriceArr(goodsPriceArr);	// 상품별 가격 배열
-		 * temp.setItemQtyArr(goodsQuantityArr);	// 상품별 수량 배열
-		 * temp.setOrdNo(1);						// 주문번호
-		 * temp.setRealOrdAmt(32000);				// 결제금액
-		 * temp.setBirthYmd("198912021");			// 생년월일 + 성별(남자 : 1, 여자 : 2)
-		 * temp.setPayMeans(TscConstants.PayMeans.ACCOUNT_TRANSFER.value());		// 무통장입금 or 계좌이체
-		 * temp.setBankNm("신한은행");					// 은행명  >> PG 송부 후 result에서 값 입력하면됨
-		 * temp.setOrdNm("이태영");					// 주문자명
-		 * temp.setOrdTelno("");					// 주문자전화1 ("-" 포함)
-		 * temp.setOrdPhnno("010-7111-4489");		// 주문자전화2 ("-" 포함)
-		 * temp.setRecipZipcode("08755");			// 주문자우편번호
-		 * temp.setRecipAddr("서울시 관악구 신림동 1414-26 해피타워 501호");	// 주문자주소
-		 * temp.setOrdEmail("xodud1202@naver.com");	// 주문자이메일
-		 * temp.setRecipNm("이태영");					// 수령인명
-		 * temp.setRecipTelno("");					// 수령인전화번호
-		 * temp.setRecipPhnno("010-7111-4489");		// 수령인휴대폰번호
-		 * temp.setCustNo(100010);					// 고객번호
-		 * temp.setPgTid("20210423952698");			// temp.setVaNo("110242222222");  >> PG 송부 후 result에서 값 입력하면됨
-		 *  */
-		
-		String[] goodsNameArr 		= new String[2]; goodsNameArr[0] ="테스트1";goodsNameArr[1] = "테스트2";
-		String[] goodsPriceArr 		= new String[2]; goodsPriceArr[0] ="10000";goodsPriceArr[1] = "12000";
-		String[] goodsQuantityArr 	= new String[2]; goodsQuantityArr[0] ="2";goodsQuantityArr[1] = "3";
-		
-		order.setItemNmArr(goodsNameArr);		// 상품명 배열
-		order.setGoodsPriceArr(goodsPriceArr);	// 상품별 가격 배열
-		order.setItemQtyArr(goodsQuantityArr);	// 상품별 수량 배열
-		order.setOrdNo(order.getOrdNo());		// 주문번호
-		order.setRealOrdAmt(32000);				// 결제금액
-		order.setBirthYmd("198912021");			// 생년월일 + 성별(남자 : 1, 여자 : 2)
-		order.setPayMeans(TscConstants.PayMeans.ACCOUNT_TRANSFER.value());		// 무통장입금 or 계좌이체
-		order.setBankNm("신한은행");				// 은행명  >> PG 송부 후 result에서 값 입력하면됨
-		order.setOrdNm("이태영");					// 주문자명
-		order.setOrdTelno("");					// 주문자전화1 ("-" 포함)
-		order.setOrdPhnno("010-1234-5555");		// 주문자전화2 ("-" 포함)
-		order.setRecipZipcode("08755");			// 주문자우편번호
-		order.setRecipAddr("서울시 관악구 신림동 1414-11 타워타워 101호");	// 주문자주소
-		order.setOrdEmail("xodud1202@naver.com");	// 주문자이메일
-		order.setRecipNm("이태영");					// 수령인명
-		order.setRecipTelno("");					// 수령인전화번호
-		order.setRecipPhnno("010-1234-5555");		// 수령인휴대폰번호
-		order.setCustNo(100010);					// 고객번호
-		order.setVaNo("110242222222");				// 가상계좌번호
-
-		// uSafeGuaranteeInsurance(order);
-		orderService.uSafeGuaranteeInsurance(order);
+		// TODO 5. 2021.05.10 보증보험 API 연동
+		orderService.updateInsurance(order);
 		
 		// 2021.03.16 주문완료화면이동처리
 		mav.setViewName("redirect:/order/complete?ordNo=" + order.getOrdNo());

+ 41 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml

@@ -567,4 +567,45 @@
 		    , NOW()
 		)
 	</insert>
+	
+	<!-- 보증보험 API 연동위한 정보조회 -->
+	<select id="getGoodsInfoForInsurance" parameterType="Order" resultType="Order">
+		/* TsfOrder.getGoodsInfoForInsurance : 보증보험 API 연동위한 정보조회 */
+		SELECT G.GOODS_NM
+		     , OD.REAL_ORD_AMT
+		     , OD.ORD_QTY
+		     , O.ORD_NM
+		     , P.PAY_MEANS 
+		     , P.VA_BANK
+		     , P.VA_NM
+		     , P.VA_NO
+		     , FN_GET_CODE_NM('G940', P.VA_BANK) AS BANK_NM
+		     , P.PG_TID
+		     , O.ORD_PHNNO 
+		     , O.ORD_EMAIL 
+		     , INS.BIRTH_GEN 
+		     , DA.RECIP_NM 
+		     , DA.RECIP_PHNNO 
+		     , DA.RECIP_ZIPCODE 
+		     , DA.RECIP_BASE_ADDR 
+		     , DA.RECIP_DTL_ADDR 
+		FROM   TB_INSURANCE INS
+		INNER  JOIN TB_ORDER_DETAIL OD
+		ON     OD.ORD_NO = INS.ORD_NO
+		INNER  JOIN TB_GOODS G
+		ON     OD.GOODS_CD = G.GOODS_CD
+		INNER  JOIN TB_PAYMENT P
+		ON     OD.ORD_NO = P.ORD_NO
+		INNER  JOIN TB_ORDER O
+		ON     P.ORD_NO = O.ORD_NO
+		INNER  JOIN TB_DELIVERY_ADDR DA
+		ON     OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ 
+		WHERE  1=1
+		AND    INS.IF_YN = 'N'
+		AND    P.PAY_GB = 'O'
+		AND    INS.ORD_NO = #{ordNo}
+	</select>
+	
+
+
 </mapper>