ソースを参照

Merge remote-tracking branch 'origin/develop' into card007

# Conflicts:
#	src/main/java/com/style24/core/support/env/TscConstants.java
card007 4 年 前
コミット
cefe7b6122

+ 68 - 12
src/main/java/com/style24/core/biz/service/TscMailService.java

@@ -28,24 +28,13 @@ import lombok.extern.slf4j.Slf4j;
 @Service
 @Slf4j
 public class TscMailService {
-	private static final String siteNm = "STYLE24";
-
-	@Autowired
-	private Environment env;
 
 	@Autowired
 	private NetpathyMailSender netpathyMailSender;
 
-	@Autowired
-	private NaverShortUrl shortUrl;
-
 	@Autowired
 	private TscCustomerService coreCustomerService;
 
-	@Autowired
-	private TscMailTemplateService mailTemplateService;
-
-
 
 	/**
 	 * 고객 임시비밀번호 이메일 발송
@@ -143,7 +132,7 @@ public class TscMailService {
 	 * 회원탈퇴
 	 *
 	 * @param customer - 고객 정보
-	 * @param senderNo - 보낸
+	 * @param senderNo - 보낸NO
 	 * @author jsshin
 	 * @since 2021. 06. 02
 	 */
@@ -597,5 +586,72 @@ public class TscMailService {
 			// Do nothing
 		}
 	}
+	
+	/**
+	 * 무통장 입금 요청
+	 *
+	 * @param GagaMap
+	 * @param Integer
+	 * @author jsh77b
+	 * @since 2021. 06. 25
+	 */
+	@Transactional("shopTxnManager")
+	public void sendVaDepositRequest(GagaMap replaceInfo, Integer senderNo) {
+		
+		Order orderInfo = (Order)replaceInfo.get("orderInfo");
+
+		// 주문 결제 완료 메일 발송
+		netpathyMailSender.send(NetpathyMailSender.MailAnswerSq.VA_DEPOSIT_REQUEST.value(), orderInfo.getOrdEmail(), replaceInfo);
 
+		try {
+			if (replaceInfo.getInt("custNo") > 0) {
+				// 고객접촉이력 정보
+				CustContactHst custContactHst = new CustContactHst();
+				custContactHst.setContactType(TscConstants.ContactType.CANCEL_INFO.value());				// 접촉유형:주문-취소안내(공통코드G054)
+				custContactHst.setContactMethod(TscConstants.ContactMethod.EMAIL.value());					// 접촉방법:알림톡+문자(공통코드G055)
+				custContactHst.setContactContents("주문-결제안내");
+				custContactHst.setReceiverNo(replaceInfo.getInt("custNo"));
+				custContactHst.setSenderNo(senderNo);
+				custContactHst.setRegNo(senderNo);
+				coreCustomerService.createCustomerContactHistory(custContactHst);
+			}
+		} catch (Exception e) {
+			log.error("error", e);
+			// Do nothing
+		}
+	}
+
+	/**
+	 * 기본메일
+	 * @param customer - 고객 정보
+	 * @param senderNo
+	 * @author jsshin
+	 * @since 2021. 06. 02
+	 */
+	@Transactional("shopTxnManager")
+	public void sendBasicMail(Customer customer,Integer senderNo) {
+		GagaMap replaceInfo = new GagaMap();
+
+		replaceInfo.setInt("custNo", customer.getCustNo());
+		replaceInfo.setString("custNm", customer.getCustNm());
+		replaceInfo.setString("content", customer.getContent().replaceAll("\\\n", "<br/>"));
+
+		netpathyMailSender.send(NetpathyMailSender.MailAnswerSq.BASIC.value(), customer.getEmail(), replaceInfo);
+
+		try {
+			// 고객접촉이력 정보
+			CustContactHst custContactHst = new CustContactHst();
+			custContactHst.setContactType(TscConstants.ContactType.BASIC_EMAIL.value());
+			custContactHst.setContactMethod(TscConstants.ContactMethod.EMAIL.value());
+			custContactHst.setContactContents("기본EMAIL안내발송");
+			custContactHst.setReceiverNo(customer.getCustNo());
+			custContactHst.setSenderNo(senderNo);
+			custContactHst.setRegNo(senderNo);
+			coreCustomerService.createCustomerContactHistory(custContactHst);
+		} catch (Exception e) {
+			log.error("error", e);
+			// Do nothing
+		}
+
+	}
 }

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

@@ -369,7 +369,7 @@ public class TscNaverPayService {
 		}
 	}
 
-	public void sendNaverPayDeliveryStartOrder(Collection<Order> params, String statGb) {
+	public void sendNaverPayDeliveryStartOrder(Collection<Order> params, String statGb, Integer userNo) {
 		for(Order param : params) {
 			if ("SHIPPING".equals(statGb)) {
 				Order order = new Order();
@@ -454,7 +454,7 @@ public class TscNaverPayService {
 								fail.setMallCd(order.getMallCd());
 								fail.setAccessLicense(order.getAccessLicense());
 								fail.setSecretKey(order.getSecretKey());
-								fail.setRegNo(0);
+								fail.setRegNo(userNo);
 
 								orderDao.createNaverPayErrorLog(fail);
 							} catch(Exception e) {

+ 32 - 4
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -1,6 +1,7 @@
 package com.style24.core.biz.service;
 
 import java.text.DecimalFormat;
+import java.text.NumberFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -905,6 +906,11 @@ public class TscOrderChangeService {
 			orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE_WAIT.value();
 		}
 
+		// 네이버페이는 추가 결제 금액이 있어도 취소접수로 변경
+		if(StringUtils.isNotBlank(excReq.getPgGb()) && TscConstants.PgGb.NAVER_ORDER.value().equals(excReq.getPgGb())) {
+			orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
+		}
+
 		// 1. 재고 체크 (세트아이템 포함)
 		for (Order order : excReqList) {
 			Order currStockQty = orderChangeDao.getCurrStockQty(order);
@@ -996,6 +1002,11 @@ public class TscOrderChangeService {
 					}
 				}
 
+				if(StringUtils.isNotBlank(excReq.getPgGb()) && TscConstants.PgGb.NAVER_ORDER.value().equals(excReq.getPgGb()) && addPayCost > 0) {
+					rtnDelvFee = order.getRtnDelvFee();
+					excDelvFee = order.getExcDelvFee() - rtnDelvFee;
+				}
+
 				// 반품배송비 등록
 				deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.RETURN_DELIVERY_FEE.value());
 				deliveryFee.setDelvFee(rtnDelvFee);
@@ -1603,6 +1614,7 @@ public class TscOrderChangeService {
 				pg.setPayMeans(payment.getPayMeans());
 				kakaoPayService.cancelKakaoPayment(pg);
 			} else if (TscConstants.PgGb.NAVER_ORDER.value().equals(pgGb)) {
+				pg.setPayAmt(pg.getPayAmt() * -1);
 				orderDao.insertPaymentCancel(pg);
 			}
 
@@ -2958,7 +2970,11 @@ public class TscOrderChangeService {
 				DeliveryFee deliveryFee = new DeliveryFee();
 				deliveryFee.setOrdNo(ordNo);
 				deliveryFee.setDelvFeeCd(delvFeeCd);
-				deliveryFee.setOrdChgSq(ordChgSq);
+				
+				// 2021.06.23 주문완료에서 같이 사용하려고 추가 하였음
+				if (ordChgSq != null) {
+					deliveryFee.setOrdChgSq(ordChgSq);
+				}
 
 				Collection<DeliveryFee> deliveryFeeList = deliveryService.getDeliveryFee(deliveryFee);
 
@@ -3239,9 +3255,21 @@ public class TscOrderChangeService {
 			sb.append("																							<span>");
 			sb.append(orderChange.getChgQty());
 			sb.append("개</span>\n");
-			// sb.append("																							<span style=\"width: 12px;padding-left:12px;\"></span>\n");
-			// sb.append("																							<span style=\"display: inline-block; vertical-align: middle; width: 1px; height: 14px; background: #ddd;\"></span>\n");
-			// sb.append("																							<span style=\"width: 12px;padding-right:12px;\"></span>\n");
+			
+			// 2021.06.24 주문완료메일에서 사용하기위해서 적용
+			if (orderChange.getListPrice() > 0) {
+				sb.append("																							<span style=\"width: 12px;padding-left:12px;\"></span>\n");
+				sb.append("																							<span style=\"display: inline-block; vertical-align: middle; width: 1px; height: 14px; background: #ddd;\"></span>\n");
+				sb.append("																							<span style=\"width: 12px;padding-right:12px;\"></span>\n");
+				
+				sb.append("<span style=\"text-decoration: line-through;color: #888888;\"><span>");
+				sb.append(NumberFormat.getInstance().format(orderChange.getListPrice()));
+				sb.append("</span>원</span>");
+				sb.append("&nbsp;&nbsp;<span style=\"font-weight: 500;\"><span>");
+				sb.append(NumberFormat.getInstance().format(orderChange.getOrdAmt()));
+				sb.append("</span>원</span>");
+			}
+			
 			sb.append("																						</td>\n");
 			sb.append("																					</tr>\n");
 			sb.append("																					<tr>\n");

+ 11 - 7
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -1881,6 +1881,7 @@ public class TscOrderService {
 				
 				order.setGiftPackCloseYn(orderInfo.getGiftPackCloseYn());
 				order.setGiftPackCloseDt(orderInfo.getGiftPackCloseDt());
+				order.setOrdDt(orderInfo.getOrdDt());
 			}
 			index++;
 		}
@@ -1891,6 +1892,7 @@ public class TscOrderService {
 		for (Order deliveryAddrInfo : deliveryAddrInfoList) {
 			if (index == 0) {
 				order.setRecipNm(deliveryAddrInfo.getRecipNm());
+				order.setRecipZipcode(deliveryAddrInfo.getRecipZipcode());
 				order.setRecipBaseAddr(deliveryAddrInfo.getRecipBaseAddr());
 				order.setRecipDtlAddr(deliveryAddrInfo.getRecipDtlAddr());
 				order.setRecipPhnno(deliveryAddrInfo.getRecipPhnno());
@@ -1904,7 +1906,7 @@ public class TscOrderService {
 		
 		// 3. 상품정보조회
 		Collection<Order> orderDetailList 			= orderDao.getOrderDetailOrdAmtList(order);
-		Collection<Order> orderDetailDelvFeeCdGrp 	= orderDao.getOrderDetailDelvFeeCdGrp(order);
+		//Collection<Order> orderDetailDelvFeeCdGrp 	= orderDao.getOrderDetailDelvFeeCdGrp(order);
 		
 		int listSumAmt 			= 0; // 상품금액합계(정상가)
 		int goodsSumAmt 		= 0; // 상품금액합계(판매가)
@@ -2067,8 +2069,13 @@ public class TscOrderService {
 			orderChange.setGoodsType(orderDetail.getGoodsType());
 			orderChange.setSysImgNm(orderDetail.getSysFileNm());
 			orderChange.setSupplyCompNm(orderDetail.getSupplyCompNm());
-			orderChange.setDelvFeeCd(orderDetail.getCartDelvFeeCd());
+			orderChange.setDelvFeeCd(orderDetail.getDelvFeeCd());
 			orderChange.setOrdNo(order.getOrdNo());
+			orderChange.setChgQty(orderDetail.getOrdQty());
+			
+			orderChange.setListPrice((orderDetail.getListPrice() + orderDetail.getOptAddPrice()) * orderDetail.getOrdQty());
+			int ordAmt = ((orderDetail.getCurrPrice() + orderDetail.getOptAddPrice()) * orderDetail.getOrdQty()) - orderDetail.getCpn1DcAmt() - (orderDetail.getTmtb1DcAmt() + orderDetail.getTmtb2DcAmt());
+			orderChange.setOrdAmt(ordAmt);
 
 			cancelList.add(orderChange);
 		}
@@ -2077,15 +2084,12 @@ public class TscOrderService {
 		String cancelInfo = orderChangeService.getMailOrderCancelInfo(cancelList);
 		resultMap.set("orderListInfo"		, cancelInfo);				// 주문목록
 		
-		log.info("cancelInfo ::: {}", cancelInfo);
-		
 		// 사은품목록
 		OrderChange oc = new OrderChange();
 		oc.setOrdNo(order.getOrdNo());
 		String freeGiftInfo = orderChangeService.getMailFreeGiftCancelInfo(oc);
 		resultMap.set("orderFreegiftInfo"	, freeGiftInfo);			// 사은품목록
-		
-		log.info("freeGiftInfo ::: {}", freeGiftInfo);
+
 
 		return resultMap;
 	}
@@ -2499,7 +2503,7 @@ public class TscOrderService {
 		}
 
 		try {
-			naverPayService.sendNaverPayDeliveryStartOrder(delvStartList, "SHIPPING");
+			naverPayService.sendNaverPayDeliveryStartOrder(delvStartList, "SHIPPING", userNo);
 		} catch(Exception e) {
 			e.printStackTrace();
 		}

+ 4 - 3
src/main/java/com/style24/core/biz/thirdparty/NetpathyMailSender.java

@@ -49,7 +49,7 @@ public class NetpathyMailSender {
 	private TscMailTemplateService mailTemplateService;
 
 
-		// 알림톡 답변일련번호
+	// 메일 답변일련번호
 	public enum MailAnswerSq {
 		JOIN_CONGRATS(1010),				// 회원가입축하 안내
 		TEMP_PASSWD(1011),				// 임시비밀번호발급 안내
@@ -63,14 +63,15 @@ public class NetpathyMailSender {
 
 		ORDER_COMPLETE(1019),			// 주문완료 안내
 		VA_DEPOSIT_REQUEST(1020),		// 무통장 입금 요청
-		CANCEL_REFUND(1021),				// 주문취소 및 환불 안내
+		CANCEL_REFUND(1021),			// 주문취소 및 환불 안내
 
 		EXCHANGE_REQUEST(1023),			// 교환 접수 안내
 		RETURN_REQUEST(1024),			// 반품 접수 안내
 		MARKETING_MAIL_1(1025),			// 마케팅메일 1단
 		MARKETING_MAIL_2(1026),			// 마케팅메일 2단
 		MARKETING_MAIL_3(1027),			// 마케팅메일 3단
-		MARKETING_MAIL_MIX(1028);		// 마케팅메일 혼합
+		MARKETING_MAIL_MIX(1028),		// 마케팅메일 혼합
+		BASIC(1029);						// 기본메일
 
 		private Integer value;
 

+ 20 - 6
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -69,25 +69,26 @@ public class TscConstants {
 		CERT_NO_SEND("G054_202"),				// 회원/마케팅 -휴대전화인증
 		TEMP_PASSWD("G054_203"), 				// 회원/마케팅 -고객비밀번호발송
 		ONE_TO_ONE_ANSWER("G054_204"),			// 회원/마케팅 -1:1문의답변
-		SECEDE_CUST("G054_205"),				// 회원/마케팅 -가입탈퇴안내
+		SECEDE_CUST("G054_205"),					// 회원/마케팅 -가입탈퇴안내
 		BASIC_LMS("G054_206"),					// 회원/마케팅 -기본LMS안내발송
 		DORMANT_EXPECTED("G054_207"),			// 회원/마케팅 -휴면계정전환예정
 		PRIVACY_POLICY("G054_208"),				// 회원/마케팅 -개인정보 이용내역
-		MARKETING_AGREE("G054_209"),			// 회원/마케팅 -마케팅 정보 수신동의 내역
-		BIRTH_COUPON_NOTICE("G054_210"),		// 회원/마케팅 -생일쿠폰다운로드안내
+		MARKETING_AGREE("G054_209"),				// 회원/마케팅 -마케팅 정보 수신동의 내역
+		BIRTH_COUPON_NOTICE("G054_210"),			// 회원/마케팅 -생일쿠폰다운로드안내
 		GRADE_NOTICE("G054_211"),				// 회원/마케팅 -이달의 등급 혜택 안내
 		DORMANT_EXPECT_COMBACK("G054_212"),		// 회원/마케팅 -휴면/미접속자 방어쿠폰
 		GIFTCARD_EXTNC_EXPECT("G054_213"),		// 회원/마케팅 - 상품권 소멸 예정 안내
-		COUPON_EXTNC_EXPECT("G054_214"),		// 회원/마케팅 - 쿠폰 소멸 예정안내
+		COUPON_EXTNC_EXPECT("G054_214"),			// 회원/마케팅 - 쿠폰 소멸 예정안내
 		POINT_EXTNC_EXPECT("G054_215"),			// 회원/마케팅 - 포인트 소멸 예정안내
 		GOODS_ASK_ANSWER("G054_216"),			// 회원/마케팅 - 상품문의답변
+		BASIC_EMAIL("G054_217"),					// 회원/마케팅 - 기본EMAIL안내발송
 		ORDER_INFO("G054_301"),					// 주문-주문안내
 		BANK_DEPOSIT_INFO("G054_302"),			// 주문-무통장입금안내
 		SOLDOUT_EXPECTED_INFO("G054_303"),		// 주문-결품예정안내
 		SOLDOUT_INFO("G054_304"),				// 주문-결품안내
-		CANCEL_INFO("G054_305"),				// 주문-취소안내
+		CANCEL_INFO("G054_305"),					// 주문-취소안내
 		REPAYMENT_INFO("G054_306"),				// 주문-재결제안내
-		BUY_CONFIRM("G054_307"),				// 주문-구매확정
+		BUY_CONFIRM("G054_307"),					// 주문-구매확정
 		GIFT("G054_308"),						// 주문-선물하기
 		SHIPPING_INFO("G054_401"),				// 배송-주문상품배송안내
 		EXCHANGE_SHIPPING_INFO("G054_402"),		// 배송-교환상품배송안내
@@ -308,6 +309,19 @@ public class TscConstants {
 		}
 	}
 
+	// 교환 요청 사유
+	public enum OrderChangeReason {
+		CHANGE_OPTION("G689_10"),		// 사이즈 변경
+		NG_GOODS("G689_11"),			// 상품의 결함이 있음
+		INCORRECT_DELV("G689_12"),	// 주문상품과 다른상품이 배송됨
+		BROKEN("G689_13"),			// 상품이 파손되어 배송됨
+		NOT_DELV_ALL("G689_14"),		// 일부상품이 배송되지 않음
+		INCORRECT_OPTION("G689_15");	// 상품 정보와 상이함
+
+		private String value;
+		private OrderChangeReason(String value) {
+			this.value = value;
+		}
 	// 주문변경요청변경구분
 	public enum ChangeGb {
 		EXCHANGE_TO_CANCEL("G681_10"),		// 교환TO취소

+ 2 - 0
src/main/java/com/style24/persistence/domain/Alarm.java

@@ -22,4 +22,6 @@ public class Alarm extends TscBaseDomain {
 	private String fuserid;		// 사용자계정
 	private String fcallback;	// 발신자전화번호(회신번호)
 
+	private String batchNm;		// 배치명
+
 }

+ 2 - 0
src/main/java/com/style24/persistence/domain/Order.java

@@ -748,6 +748,8 @@ public class Order extends TscBaseDomain {
 	private String errorReason;
 	private String accessLicense;
 	private String secretKey;
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] claimNpayOrdDtlNos;
 	
 	private String delvExpnYn;
 	private String addDeliveryFeeYn;

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

@@ -1131,7 +1131,8 @@
 	<update id="updateNaverPayOrderNo" parameterType="Order">
 		/* TscOrder.updateNaverPayOrderNo */
 		UPDATE TB_ORDER SET
-		       NPAY_ORD_NO = #{npayOrdNo}
+		       PAY_DT      = NOW()
+		     , NPAY_ORD_NO = #{npayOrdNo}
 		     , ORD_NM      = #{ordNm}
 		     , ORD_PHNNO   = #{ordPhnno}
 		     , ORD_EMAIL   = #{ordEmail}
@@ -3876,6 +3877,7 @@
 		     , A.DELV_FEE_CD_GRP
 		     , A.DELV_FEE_CD_GRP_SORT
 		     , A.SUPPLY_COMP_CD
+		     , A.SUPPLY_COMP_NM
 		     , A.DELV_FEE_CD
 		     , A.SELF_GOODS_YN
 		     , SUM(A.OPT_ADD_PRICE) AS OPT_ADD_PRICE
@@ -3936,6 +3938,9 @@
 		         , OD.DELV_ADDR_SQ
 		         , OD.GIFT_PACK_YN
 		         , OD.SUPPLY_COMP_CD
+		         , (SELECT SUPPLY_COMP_NM
+		            FROM   TB_SUPPLY_COMPANY SC
+		            WHERE  SC.SUPPLY_COMP_CD = OD.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
 		         , OD.DELV_FEE_CD
 		         , G1.SELF_GOODS_YN
 		    FROM   TB_ORDER_DETAIL OD
@@ -3971,6 +3976,7 @@
 		     , A.DELV_FEE_CD_GRP
 		     , A.DELV_FEE_CD_GRP_SORT
 		     , A.SUPPLY_COMP_CD
+		     , A.SUPPLY_COMP_NM
 		     , A.SYS_IMG_NM
 		     , A.DELV_FEE_CD
 		     , A.SELF_GOODS_YN