Ver código fonte

이태영 - 20210616 네이버페이 주문형 개발 중

xodud lee 4 anos atrás
pai
commit
4ad767d61b

+ 21 - 9
src/main/java/com/style24/core/biz/service/TscKakaotalkService.java

@@ -4,6 +4,8 @@ import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import com.style24.core.biz.dao.TscOrderChangeDao;
+import com.style24.persistence.domain.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -14,15 +16,6 @@ import com.gagaframework.web.parameter.GagaMap;
 import com.style24.core.biz.thirdparty.NaverShortUrl;
 import com.style24.core.biz.thirdparty.SsgKakaoSender;
 import com.style24.core.support.env.TscConstants;
-import com.style24.persistence.domain.Coupon;
-import com.style24.persistence.domain.CustContactHst;
-import com.style24.persistence.domain.CustCoupon;
-import com.style24.persistence.domain.Customer;
-import com.style24.persistence.domain.GiftCard;
-import com.style24.persistence.domain.Order;
-import com.style24.persistence.domain.OrderChange;
-import com.style24.persistence.domain.Point;
-import com.style24.persistence.domain.SsgDirectMessage;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -50,6 +43,9 @@ public class TscKakaotalkService {
 	@Autowired
 	private NaverShortUrl shortUrl;
 
+	@Autowired
+	private TscOrderChangeDao orderChangeDao;
+
 	/**
 	 * 고객 임시비밀번호 알림톡 발송
 	 * @param customer - 고객 정보
@@ -684,6 +680,14 @@ public class TscKakaotalkService {
 	 */
 	@Transactional("shopTxnManager")
 	public void sendDeliveryStart(Order order, Integer senderNo) throws Exception {
+		Payment payment = new Payment();
+		payment.setOrdNo(order.getOrdNo());
+		payment = orderChangeDao.getPaymentInfo(payment);
+		// 네이버페이 주문형 데이터는 알림톡 송부X
+		if(TscConstants.PgGb.NAVER_ORDER.value().equals(payment.getPgGb())) {
+			return;
+		}
+
 		SsgDirectMessage dm = new SsgDirectMessage();
 		dm.setFuserid(String.valueOf(senderNo)); // 발송자NO
 		dm.setFdestine(order.getOrdPhnno());
@@ -935,6 +939,14 @@ public class TscKakaotalkService {
 	 */
 	@Transactional("shopTxnManager")
 	public void sendOrderCancelComplete(OrderChange orderChange, Integer senderNo) throws Exception {
+		Payment payment = new Payment();
+		payment.setOrdNo(orderChange.getOrdNo());
+		payment = orderChangeDao.getPaymentInfo(payment);
+		// 네이버페이 주문형 데이터는 알림톡 송부X
+		if(TscConstants.PgGb.NAVER_ORDER.value().equals(payment.getPgGb())) {
+			return;
+		}
+
 		SsgDirectMessage dm = new SsgDirectMessage();
 		dm.setFuserid(String.valueOf(senderNo));
 		dm.setFdestine(orderChange.getOrdPhnno());

+ 15 - 11
src/main/java/com/style24/core/biz/service/TscNaverPayService.java

@@ -300,11 +300,11 @@ public class TscNaverPayService {
 				order = orderDao.getOrdDtlInfo(order);
 
 				// 네이버 페이 주문일 경우
-				if(TscConstants.PgGb.NAVER_ORDER.value().equals(order.getPgGb())) {
+				if(order != null && TscConstants.PgGb.NAVER_ORDER.value().equals(order.getPgGb())) {
 					try {
 						Security.addProvider(new BouncyCastleProvider());
 						AccessCredentialsType accessCredentialsType = new AccessCredentialsType();
-						MallServiceLocator MSL = new MallServiceLocator(env.getProperty("naver.pay.port.address"));
+						MallServiceLocator MSL = new MallServiceLocator(env.getProperty("naverPay.port.address"));
 						MallServiceSOAP11BindingStub stub = new MallServiceSOAP11BindingStub();
 
 						stub = (MallServiceSOAP11BindingStub) MSL.getMallServiceSOAP11Port();
@@ -312,9 +312,9 @@ public class TscNaverPayService {
 						ShipProductOrderRequest shipProductOrderRequest 	= null;
 						ShipProductOrderResponse shipProductOrderResponse 	= null;
 
-						order.setAccessLicense(env.getProperty("naver.pay.access.license"));
-						order.setSecretKey(env.getProperty("naver.pay.secret.key"));
-						order.setMallCd(env.getProperty("naver.pay.mall.id"));
+						order.setAccessLicense(env.getProperty("naverPay.access.license"));
+						order.setSecretKey(env.getProperty("naverPay.secret.key"));
+						order.setMallCd(env.getProperty("naverPay.shop.id"));
 
 						//서명생성
 						generateSignature("ShipProductOrder", order.getSecretKey());
@@ -330,7 +330,7 @@ public class TscNaverPayService {
 						shipProductOrderRequest = new ShipProductOrderRequest();
 						shipProductOrderRequest.setAccessCredentials(accessCredentialsType);
 						shipProductOrderRequest.setDetailLevel("Full");
-						shipProductOrderRequest.setVersion(env.getProperty("naver.pay.version"));
+						shipProductOrderRequest.setVersion(env.getProperty("naverPay.version"));
 						shipProductOrderRequest.setRequestID("");
 						shipProductOrderRequest.setProductOrderID(String.valueOf(order.getNpayOrdDtlNo()));
 						shipProductOrderRequest.setDeliveryMethodCode(DeliveryMethodType.DELIVERY);
@@ -338,8 +338,12 @@ public class TscNaverPayService {
 						shipProductOrderRequest.setTrackingNumber(order.getInvoiceNo());
 
 						Calendar dispatchDate = Calendar.getInstance();
-						Date tmp = new SimpleDateFormat("yyyyMMddHHmmss").parse(order.getDelvStdt(), new ParsePosition(0));
-						if("".equals(order.getDelvStdt())) tmp = new Date();
+						Date tmp;
+						if(StringUtils.isNotBlank(order.getDelvStdt())) {
+							tmp = new SimpleDateFormat("yyyyMMddHHmmss").parse(order.getDelvStdt(), new ParsePosition(0));
+						} else {
+							tmp = new Date();
+						}
 
 						dispatchDate.setTime(tmp);
 						shipProductOrderRequest.setDispatchDate(dispatchDate);
@@ -365,8 +369,8 @@ public class TscNaverPayService {
 							try {
 								Order fail = new Order();
 								fail.setErrorReason("변경상품주문조회 에러");
-								fail.setOrdNo(fail.getOrdNo());
-								fail.setNpayOrdDtlNo(fail.getNpayOrdDtlNo());
+								fail.setOrdNo(order.getOrdNo());
+								fail.setNpayOrdDtlNo(order.getNpayOrdDtlNo());
 								fail.setOptCd("sendNaverPayDeliveryStartOrder");
 								fail.setResultCd(shipProductOrderResponse.getError().getCode());
 								fail.setResultMsg(shipProductOrderResponse.getError().getMessage());
@@ -398,7 +402,7 @@ public class TscNaverPayService {
 	private void generateSignature(String operationName, String secretKey) {
 		timeStamp = SimpleCryptLib.getTimestamp();
 
-		String data = timeStamp + env.getProperty("naver.pay.service.name") + operationName;
+		String data = timeStamp + env.getProperty("naverPay.service.name") + operationName;
 
 		try {
 			signature = SimpleCryptLib.generateSign(data, secretKey);

+ 15 - 6
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -2298,12 +2298,12 @@ public class TscOrderService {
 	 */
 	@Transactional("shopTxnManager")
 	public void updateSellerDelvStartAndPartCancel(Collection<Order> params, int userNo) {
-		try {
-			// 주문번호별 상세번호, 취소수량 및 주문정보 세팅
-			List<OrderChange> cancelDataList = new ArrayList<OrderChange>();
-			// 배송중 주문 목록 (알림톡 송부 위함)
-			List<Order> delvStartList = new ArrayList<Order>();
+		// 주문번호별 상세번호, 취소수량 및 주문정보 세팅
+		List<OrderChange> cancelDataList = new ArrayList<OrderChange>();
+		// 배송중 주문 목록 (알림톡 송부 및 네이버페이 주문형 데이터 송부 위함)
+		List<Order> delvStartList = new ArrayList<Order>();
 
+		try {
 			for(Order param : params) {
 				if(param.getCnclRtnQty() > 0) {
 					boolean chkOrd = true;
@@ -2371,6 +2371,14 @@ public class TscOrderService {
 
 						// TODO 취소 메일 송부
 
+
+						// TODO 품절취소 네이버페이 송부
+						try {
+							// 네이버페이 품절취소 송부
+
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
 					}
 				}
 			}
@@ -2407,6 +2415,7 @@ public class TscOrderService {
 						delv.setGoodsNm(param.getGoodsNm());
 						delv.setOrdPhnno(param.getOrdPhnno());
 						delv.setCustNo(param.getCustNo());
+						delv.setOrdDtlNo(param.getOrdDtlNo());
 						delv.setGoodsCnt("0");		// 첫 상품은 외 0건
 
 						delvStartList.add(delv);
@@ -2436,7 +2445,7 @@ public class TscOrderService {
 		}
 
 		try {
-			naverPayService.sendNaverPayDeliveryStartOrder(params, "SHIPPING");
+			naverPayService.sendNaverPayDeliveryStartOrder(delvStartList, "SHIPPING");
 		} catch(Exception e) {
 			e.printStackTrace();
 		}

+ 4 - 0
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -639,6 +639,7 @@
 		     , A.SHIP_COMP_CD
 		     , A.SHIP_COMP_NM
 		     , A.DELV_LOC_NM
+			 , A.PG_GB
 		FROM (
 		    SELECT OD.ORD_NO
 		         , CASE WHEN OD.ORD_EXCH_GB = 'O'
@@ -726,6 +727,7 @@
 		            WHERE  DL.DELV_LOC_CD = OD.DELV_LOC_CD
 		            AND    DL.USE_YN = 'Y'
 		            LIMIT  1) AS DELV_LOC_NM
+		         , P.PG_GB
 		      FROM TB_ORDER O
 		     INNER JOIN TB_ORDER_DETAIL OD
 		        ON O.ORD_NO = OD.ORD_NO
@@ -829,6 +831,7 @@
 		     , A.SHIP_COMP_CD
 		     , A.SHIP_COMP_NM
 		     , A.DELV_LOC_NM
+		     , A.PG_GB
 		 ORDER BY A.ORD_NO
 		     , A.ORD_DTL_NO DESC
 	</select>
@@ -4404,6 +4407,7 @@
 		INNER  JOIN TB_PAYMENT P
 		ON     OD.ORD_NO = P.ORD_NO
 		AND    P.PAY_STAT = 'G016_30'
+		AND    P.PAY_GB = 'O'
 		INNER  JOIN TB_SHIP_COMPANY SC
 		ON     OD.SHIP_COMP_CD = SC.SHIP_COMP_CD
 		WHERE  OD.ORD_DTL_NO = #{ordDtlNo}

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TscOrderChange.xml

@@ -2903,7 +2903,7 @@
 
 	<!-- 결제정보 조회 -->
 	<select id="getPaymentInfo" parameterType="Payment" resultType="Payment">
-		/* TscOrder.getPaymentInfo */
+		/* TscOrderChange.getPaymentInfo */
 		SELECT PAY_SQ
 		     , ORD_NO
 		     , PAY_DT