Pārlūkot izejas kodu

Merge branch 'develop' into bin2107

bin2107 5 gadi atpakaļ
vecāks
revīzija
b5e0833b85

+ 16 - 0
src/main/java/com/style24/front/biz/dao/TsfCartDao.java

@@ -308,4 +308,20 @@ public interface TsfCartDao {
 	 * @since 2021. 04. 16
 	 */
 	void deleteCartDetailFromEmptyCart();
+
+	/**
+	 * 2021.05.10 주문완료 주문번호로 장바구니정보 삭제
+	 * @return void
+	 * @author jsh77b
+	 * @since 2021. 05. 10
+	 */
+	void deleteCartOrdNo(Cart param);
+	
+	/**
+	 * 2021.05.10 주문완료 주문번호로 장바구니상세정보 삭제
+	 * @return void
+	 * @author jsh77b
+	 * @since 2021. 05. 10
+	 */
+	void deleteCartDetailOrdNo(Cart param);
 }

+ 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);
 }

+ 117 - 2
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -23,6 +23,7 @@ import com.style24.core.biz.service.TscKcpService;
 import com.style24.core.biz.service.TscNaverPayService;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
+import com.style24.front.biz.dao.TsfCartDao;
 import com.style24.front.biz.dao.TsfOrderDao;
 import com.style24.front.biz.dao.TsfRendererDao;
 import com.style24.front.support.security.session.TsfSession;
@@ -77,6 +78,9 @@ public class TsfOrderService {
 
 	@Autowired
 	private Environment env;
+	
+	@Autowired
+	private TsfCartDao cartDao;
 
 	/**
 	 * 마이페이지 주문 정보 조회
@@ -548,7 +552,7 @@ public class TsfOrderService {
 		
 		// 장바구니 금액정보 체크
 		for (Order orderDetail : cartGoodsList) {
-			cartCurrPriceSum 			= cartCurrPriceSum + orderDetail.getCurrPrice();
+			cartCurrPriceSum 			= cartCurrPriceSum + orderDetail.getOrgCurrPrice();
 		}
 		
 		// 판매가비교
@@ -870,7 +874,7 @@ public class TsfOrderService {
 			param.setIfYn("F");			// 인터페이스 송부 실패
 		}
 
-		coreOrderDao.createInsurance(param);
+		//coreOrderDao.createInsurance(param);
 
 		return "SUCCESS";
 	}
@@ -909,4 +913,115 @@ public class TsfOrderService {
 
 		return "SUCCESS";
 	}
+	
+	/**
+	 * 장바구니정보 주문번호 이력 등록
+	 * @param param
+	 * @author xodud1202
+	 * @since 2021. 05. 10
+	 */
+	@Transactional("shopTxnManager")
+	public String insertCartHstOrdNo(Order order) {
+
+		// cartsq
+		for (int i=0 ; i<order.getCartSqArr().length ; i++) {
+			Cart cart = new Cart();
+			cart.setOrdNo(order.getOrdNo());
+			cart.setCartSq(order.getCartSqArr()[i]);
+			cart.setRegNo(order.getCustNo());
+			
+			// 장바구니 이력등록
+			cartDao.insertCartHst(cart);
+		}
+
+		return "SUCCESS";
+	}
+	
+	/**
+	 * 장바구니정보 주문번호 삭제
+	 * @param param
+	 * @author xodud1202
+	 * @since 2021. 05. 10
+	 */
+	@Transactional("shopTxnManager")
+	public String deleteCartOrdNo(Order order) {
+		
+		// 주문번호 존재할때만 실행
+		if (order.getOrdNo() > 0) {
+			// 장바구니 이력등록
+			Cart cart = new Cart();
+			cart.setOrdNo(order.getOrdNo());
+			
+			// 2021.05.10 주문완료 주문번호로 장바구니정보 삭제
+			cartDao.deleteCartOrdNo(cart);
+			
+			// 2021.05.10 주문완료 주문번호로 장바구니상세정보 삭제
+			cartDao.deleteCartDetailOrdNo(cart);
+		}
+
+		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";
+	}
+	
+	
 }

+ 10 - 53
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -738,6 +738,9 @@ public class TsfOrderController extends TsfBaseController {
 		// 3. 주문기본정보등록(주문접수)
 		coreOrderService.createPreOrder(order);
 		
+		// 4. 2021.05.10 장바구니정보 정보 삭제
+		orderService.insertCartHstOrdNo(order);
+		
 		log.info("order.getEntryNo()           ::: {}", order.getEntryNo());
 		log.info("order.getPgGb()              ::: {}", order.getPgGb());
 		log.info("order.getPayMeans()          ::: {}", order.getPayMeans());
@@ -754,7 +757,7 @@ public class TsfOrderController extends TsfBaseController {
 		log.info("order.getBirthYmd()          ::: {}", order.getBirthYmd());
 		log.info("order.getGiftMsg()           ::: {}", order.getGiftMsg());
 		
-		for(int i = 0 ; i < order.getFreegiftGoodsArr().length ; i++) {
+		for (int i = 0 ; i < order.getFreegiftGoodsArr().length ; i++) {
 			log.info("order.getFreegiftGoodsArr()  ::: {}", order.getFreegiftGoodsArr()[i]);
 		}
 
@@ -817,60 +820,14 @@ public class TsfOrderController extends TsfBaseController {
 		order.setPgGb(param.getPgGb());
 		order.setPayMeans(param.getPayMeans());
 		
-		// TODO 3. 주문정보 업데이트
+		// 3. 주문정보 업데이트
 		coreOrderService.updateOrderInfo(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);
+		// 4. 2021.05.10 장바구니정보 삭제
+		orderService.deleteCartOrdNo(order);
+		
+		// TODO 5. 2021.05.10 보증보험 API 연동
+		orderService.updateInsurance(order);
 		
 		// 2021.03.16 주문완료화면이동처리
 		mav.setViewName("redirect:/order/complete?ordNo=" + order.getOrdNo());

+ 22 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -1183,4 +1183,26 @@
 		WHERE  CD.CART_SQ NOT IN (SELECT CART_SQ
 								  FROM   TB_CART CA)
 	</delete>
+	
+	<!-- 2021.05.10 주문완료 주문번호로 장바구니정보 삭제 -->
+	<delete id="deleteCartOrdNo" parameterType="Cart">
+		/* TsfCart.deleteCartOrdNo : 주문완료 주문번호로 장바구니정보 삭제 */
+		DELETE FROM TB_CART
+		WHERE  CART_SQ IN (
+			SELECT CART_SQ
+			FROM   TB_CART_HST
+			WHERE  ORD_NO = #{ordNo}
+		)
+	</delete>
+	
+	<!-- 2021.05.10 주문완료 주문번호로 장바구니상세정보 삭제 -->
+	<delete id="deleteCartDetailOrdNo"  parameterType="Cart">
+		/* TsfCart.deleteCartDetailOrdNo : 주문완료 주문번호로 장바구니상세정보 삭제 */
+		DELETE FROM TB_CART_DETAIL CD
+		WHERE  CART_SQ IN (
+			SELECT CART_SQ
+			FROM   TB_CART_HST
+			WHERE  ORD_NO = #{ordNo}
+		)
+	</delete>
 </mapper>

+ 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>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/mypage/MypageCreExchangeDetailFormWeb.html

@@ -107,7 +107,7 @@
 										</div>
 									</div>
 									<!-- 교환결제대기 -->
-									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p></div>
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${#numbers.formatInteger(exchangeDtl.addPayCost, 1, 'COMMA')}원 결제 후 교환 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_20'}"><p>교환 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->
@@ -225,7 +225,7 @@
 							</table>
 						</div>
 					</th:block>
-					<th:block th:if="${oneData.addPayCost > 0}">
+					<th:block th:if="${oneData.addPayCost > 0 and not #strings.isEmpty(oneData.pgTid)}">
 						<h4 class="subH3">결제정보</h4>
 						<div class="tbl type6">
 							<table>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/mypage/MypageCreReturnDetailFormWeb.html

@@ -98,7 +98,7 @@
 										</div>
 									</div>
 									<!-- 반품결제대기 -->
-									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}"><p th:text="|${returnDtl.addPayCost}원 결제 후 반품 가능합니다.|"></p></div>
+									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}"><p th:text="|${#numbers.formatInteger(returnDtl.addPayCost, 1, 'COMMA')}원 결제 후 반품 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_50'}"><p>반품 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->

+ 2 - 2
src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreExchangeDetailFormWeb.html

@@ -104,7 +104,7 @@
 										</div>
 									</div>
 									<!-- 교환결제대기 -->
-									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p></div>
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${#numbers.formatInteger(exchangeDtl.addPayCost, 1, 'COMMA')}원 결제 후 교환 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_20'}"><p>교환 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->
@@ -222,7 +222,7 @@
 							</table>
 						</div>
 					</th:block>
-					<th:block th:if="${oneData.addPayCost > 0}">
+					<th:block th:if="${oneData.addPayCost > 0 and not #strings.isEmpty(oneData.pgTid)}">
 						<h4 class="subH3">결제정보</h4>
 						<div class="tbl type6">
 							<table>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreReturnDetailFormWeb.html

@@ -96,7 +96,7 @@
 										</div>
 									</div>
 									<!-- 반품결제대기 -->
-									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}"><p th:text="|${returnDtl.addPayCost}원 결제 후 반품 가능합니다.|"></p></div>
+									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}"><p th:text="|${#numbers.formatInteger(returnDtl.addPayCost, 1, 'COMMA')}원 결제 후 반품 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_50'}"><p>반품 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->