Explorar el Código

반품, 교환 알림톡 발송 개발 커밋

card007 hace 5 años
padre
commit
8d9a940a3f

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

@@ -1025,7 +1025,7 @@ public class TscKakaotalkService {
 
 		if (ansSq > 0) {
 			// 테스트중
-			if ("전석훈".equals(orderChange.getOrdNm()) || "이태영".equals(orderChange.getOrdNm()) || "김지철".equals(orderChange.getOrdNm()) || "신주승".equals(orderChange.getOrdNm())) {
+			if ("전석훈".equals(orderChange.getOrdNm()) || "이태영".equals(orderChange.getOrdNm()) || "김지철".equals(orderChange.getOrdNm()) || "신주승".equals(orderChange.getOrdNm()) || "송대근".equals(orderChange.getOrdNm())) {
 				kakaoSender.send(ansSq, dm, replaceInfo);
 			}
 
@@ -1097,7 +1097,7 @@ public class TscKakaotalkService {
 
 		if (ansSq > 0) {
 			// 테스트중
-			if ("전석훈".equals(orderChange.getOrdNm()) || "이태영".equals(orderChange.getOrdNm()) || "김지철".equals(orderChange.getOrdNm()) || "신주승".equals(orderChange.getOrdNm())) {
+			if ("전석훈".equals(orderChange.getOrdNm()) || "이태영".equals(orderChange.getOrdNm()) || "김지철".equals(orderChange.getOrdNm()) || "신주승".equals(orderChange.getOrdNm()) || "송대근".equals(orderChange.getOrdNm())) {
 				SsgDirectMessage dm = new SsgDirectMessage();
 				dm.setFuserid(String.valueOf(senderNo));
 				dm.setFdestine(orderChange.getOrdPhnno());
@@ -1125,4 +1125,82 @@ public class TscKakaotalkService {
 			}
 		}
 	}
+
+	/**
+	 * 교환접수 알림톡
+	 *
+	 * @param OrderChange
+	 * @param senderNo
+	 * @author card007
+	 * @since 2021. 06. 07
+	 */
+	@Transactional("shopTxnManager")
+	public void sendOrderExchangeRequest(OrderChange orderChange, Integer senderNo) throws Exception {
+		Integer ansSq;
+		String contactType;
+		String contactContents;
+		int addPayCost = orderChange.getAddPayCost();
+		String wdGb = orderChange.getWdGb();
+		String chgerBaseAddr = orderChange.getChgerBaseAddr() + " " + orderChange.getChgerDtlAddr();
+
+		if ("D".equals(wdGb)) {
+			chgerBaseAddr = "직접배송";
+		}
+
+		if (addPayCost > 0) {
+			ansSq = SsgKakaoSender.KakaoAnswerSq.EXCHANGE_ADD_COST.value();
+			contactType = TscConstants.ContactType.EXCHANGE_ADD_PAYMENT.value();
+			contactContents = "교환-추가배송비결제안내";
+		} else {
+			ansSq = SsgKakaoSender.KakaoAnswerSq.EXCHANGE_REQUEST.value();
+			contactType = TscConstants.ContactType.EXCHANGE_RECEIPT.value();
+			contactContents = "교환-교환접수완료";
+		}
+
+		// 상품명 처리
+		String goodsNm = orderChange.getGoodsNm();
+		int goodsCnt = orderChange.getGoodsCnt();
+		if (goodsCnt > 0) {
+			goodsNm += " 외 " + goodsCnt + "건";
+		}
+
+		GagaMap replaceInfo = new GagaMap();
+		replaceInfo.setString("siteNm"				, siteNm);
+		replaceInfo.setString("ordNm"				, orderChange.getOrdNm());
+		replaceInfo.setInt("ordNo"					, orderChange.getOrdNo());
+		replaceInfo.setString("goodsNm"				, goodsNm);
+		replaceInfo.setInt("goodsCnt"				, orderChange.getGoodsCnt());
+		replaceInfo.setString("chgerBaseAddr"		, chgerBaseAddr);
+		replaceInfo.setInt("addPayCost"				, addPayCost);
+
+		if (ansSq > 0) {
+			// 테스트중
+			if ("전석훈".equals(orderChange.getOrdNm()) || "이태영".equals(orderChange.getOrdNm()) || "김지철".equals(orderChange.getOrdNm()) || "신주승".equals(orderChange.getOrdNm()) || "송대근".equals(orderChange.getOrdNm())) {
+				SsgDirectMessage dm = new SsgDirectMessage();
+				dm.setFuserid(String.valueOf(senderNo));
+				dm.setFdestine(orderChange.getOrdPhnno());
+				dm.setFkkoresendtype("LMS");
+				dm.setButtonNm("교환 접수 확인");
+
+				kakaoSender.send(ansSq, dm, replaceInfo);
+			}
+
+			try {
+				if (orderChange.getCustNo() > 0) {
+					// 고객접촉이력 정보
+					CustContactHst custContactHst = new CustContactHst();
+					custContactHst.setContactType(contactType);												// 접촉유형:교환-교환접수완료, 교환-추가배송비결제안내(공통코드G054)
+					custContactHst.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value());			// 접촉방법:알림톡+문자(공통코드G055)
+					custContactHst.setContactContents(contactContents);
+					custContactHst.setReceiverNo(orderChange.getCustNo());
+					custContactHst.setSenderNo(senderNo);
+					custContactHst.setRegNo(senderNo);
+					coreCustomerService.createCustomerContactHistory(custContactHst);
+				}
+			} catch (Exception e) {
+				log.error("error", e);
+				// Do nothing
+			}
+		}
+	}
 }

+ 138 - 123
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -4301,19 +4301,6 @@ public class TscOrderChangeService {
 		cancelMap.setString("supplyCompNm", supplyCompNm);
 		cancelMap.setString("selfGoodsYn", selfGoodsYn);
 		cancelDelvList.add(cancelMap);
-		
-		// 이미지 URL 설정
-		String hasSsl = env.getProperty("has-ssl");
-		String protocol;
-
-		if ("true".equals(hasSsl)) {
-			protocol = "https:";
-		} else {
-			protocol = "http:";
-		}
-
-		String imgUrl = protocol + env.getProperty("upload.goods.view") + "/";
-		
 
 		StringBuilder sb = new StringBuilder();
 
@@ -4355,116 +4342,7 @@ public class TscOrderChangeService {
 			sb.append("																	<tr>\n");
 			sb.append("																		<td colspan=\"5\" height=\"20px;\" style=\"height: 20px;border:0; border-bottom: 1px; border-color: #dddddd; border-style: solid; box-sizing: border-box;\"></td>\n");
 			sb.append("																	</tr>\n");
-			int idx = 0;
-			for (OrderChange orderChange : (List<OrderChange>) map.get("cancelDetailList")) {
-				if (idx > 0) {
-					sb.append("																	<!-- 점선 -->\n");
-					sb.append("																	<tr>\n");
-					sb.append("																		<td width=\"30px;\"></td>\n");
-					sb.append("																		<td colspan=\"3\" height=\"1\" style=\"border: 1px; border-top-color: #ddd; border-top-style: dashed;\"></td>\n");
-					sb.append("																		<td width=\"30px;\"></td>\n");
-					sb.append("																	</tr>\n");
-					sb.append("																	<!-- 점선 끝 -->\n");
-					sb.append("																	\n");
-				}
-				sb.append("																	<!-- 아이템 테이블 시작 -->\n");
-				sb.append("																	<tr>\n");
-				sb.append("																		<td colspan=\"5\" style=\"text-align: left;font-size: 18px;font-family:'Apple SD Gothic Neo','나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;color: #222222;\">\n");
-				sb.append("																			<!-- 아이템 컨텐츠 시작 -->\n");
-				sb.append("																			<table style=\"width:100%;height:100%;margin:0;padding:0;font-size: 14px;\" cellspacing=\"0\" cellpadding=\"0\">\n");
-				sb.append("																				<tbody>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td height=\"30px;\" style=\"height: 30px;\"></td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td width=\"40px;\" rowspan=\"10\"></td>\n");
-				sb.append("																						<td width=\"100px;\" height=\"150px;\" rowspan=\"10\" valign=\"top\" style=\"margin:0;padding:0\">\n");
-				sb.append("																							<a href=\"#none\" target=\"_blank\" style=\"margin:0;padding:0\">\n");
-				sb.append("																								<span style=\"background: #f5f5f5;width: 100px;height: 150px;margin:0;padding:0\">\n");
-				sb.append("																									<img src=\"");
-				sb.append(imgUrl);
-				sb.append(orderChange.getSysImgNm());
-				sb.append("?RS=100\" alt=\"이미지\" style=\"width: 100px;height: 150px;margin:0;padding:0\">\n");
-				sb.append("																								</span>\n");
-				sb.append("																							</a>\n");
-				sb.append("																						</td>\n");
-				sb.append("																						<td width=\"30px;\" rowspan=\"10\"></td>\n");
-				sb.append("																						<td width=\"370px;\" height=\"10px;\"></td>\n");
-				sb.append("																						<td width=\"40px;\" rowspan=\"10\"></td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td style=\"font-family:'Apple SD Gothic Neo',verdana,Arial,'나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;\">\n");
-				sb.append("																							");
-				sb.append(orderChange.getBrandNm());
-				sb.append("\n");
-				sb.append("																						</td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td height=\"10px;\" style=\"height: 10px;\"></td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td style=\"color: #222222;font-size: 16px;font-weight: bold;letter-spacing: -0.05em;\">\n");
-				sb.append("																							<a href=\"#none\" target=\"_blank\" style=\"display: block; color: #222222; font-size: 16px; font-weight: bold; letter-spacing: -0.025em; text-decoration: none;\">\n");
-				sb.append("																								");
-				sb.append(orderChange.getGoodsNm());
-				sb.append("\n");
-				sb.append("																							</a>\n");
-				sb.append("																						</td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td height=\"10px;\" style=\"height: 10px;\"></td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td>\n");
-				if ("G056_S".equals(orderChange.getGoodsType())) {
-					for (int i=0; i < orderChange.getColorNmArr().length; i++) {
-						sb.append("																							<p style=\"margin: 0; padding: 0; font-family:'Apple SD Gothic Neo','나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;font-weight:200;color: #666666; line-height: 2;\">");
-						sb.append(orderChange.getItemNmArr()[i]);
-						sb.append(" / ");
-						sb.append(orderChange.getColorNmArr()[i]);
-						sb.append(" / ");
-						sb.append(orderChange.getOptCd2Arr()[i]);
-						sb.append("</p>\n");
-					}
-				} else {
-					sb.append("																							<p style=\"margin: 0; padding: 0; font-family:'Apple SD Gothic Neo','나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;font-weight:200;color: #666666; line-height: 2;\">");
-					sb.append(orderChange.getColorNm());
-					sb.append(" / ");
-					sb.append(orderChange.getOptCd2());
-					sb.append("</p>\n");
-				}
-				sb.append("																						</td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td height=\"5px;\" style=\"height: 5px;\"></td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td height=\"10px;\" style=\"height: 10px;\"></td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td>\n");
-				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");
-				sb.append("																						</td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td height=\"10px;\" style=\"height: 10px;\"></td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																					<tr>\n");
-				sb.append("																						<td height=\"20px;\" style=\"height: 20px;\"></td>\n");
-				sb.append("																					</tr>\n");
-				sb.append("																				</tbody>\n");
-				sb.append("																				<!-- // 아이템 컨텐츠 종료 -->\n");
-				sb.append("																			</table>\n");
-				sb.append("																		</td>\n");
-				sb.append("																	</tr>\n");
-				sb.append("																	<!-- // 아이템 테이블 종료 -->\n");
-				idx++;
-			}
+			sb.append(getMailCreListInfo((List<OrderChange>) map.get("cancelDetailList")));
 			sb.append("																	<!-- 배송비 시작 -->\n");
 			sb.append("																	<tr>\n");
 			sb.append("																		<td width=\"40px;\"></td>\n");
@@ -4496,6 +4374,143 @@ public class TscOrderChangeService {
 		return sb.toString();
 	}
 
+	/**
+	 * 취반교 자동메일 취반교 정보 설정
+	 *
+	 * @param OrderChange
+	 * @return String
+	 * @author card007
+	 * @since 2021.06.10
+	 */
+	public String getMailCreListInfo(List<OrderChange> creListInfo) {
+		StringBuilder sb = new StringBuilder();
+
+		// 이미지 URL 설정
+		String hasSsl = env.getProperty("has-ssl");
+		String protocol;
+
+		if ("true".equals(hasSsl)) {
+			protocol = "https:";
+		} else {
+			protocol = "http:";
+		}
+
+		String imgUrl = protocol + env.getProperty("upload.goods.view") + "/";
+
+		int idx = 0;
+		for (OrderChange orderChange : creListInfo) {
+			if (idx > 0) {
+				sb.append("																	<!-- 점선 -->\n");
+				sb.append("																	<tr>\n");
+				sb.append("																		<td width=\"30px;\"></td>\n");
+				sb.append("																		<td colspan=\"3\" height=\"1\" style=\"border: 1px; border-top-color: #ddd; border-top-style: dashed;\"></td>\n");
+				sb.append("																		<td width=\"30px;\"></td>\n");
+				sb.append("																	</tr>\n");
+				sb.append("																	<!-- 점선 끝 -->\n");
+				sb.append("																	\n");
+			}
+			sb.append("																	<!-- 아이템 테이블 시작 -->\n");
+			sb.append("																	<tr>\n");
+			sb.append("																		<td colspan=\"5\" style=\"text-align: left;font-size: 18px;font-family:'Apple SD Gothic Neo','나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;color: #222222;\">\n");
+			sb.append("																			<!-- 아이템 컨텐츠 시작 -->\n");
+			sb.append("																			<table style=\"width:100%;height:100%;margin:0;padding:0;font-size: 14px;\" cellspacing=\"0\" cellpadding=\"0\">\n");
+			sb.append("																				<tbody>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td height=\"30px;\" style=\"height: 30px;\"></td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td width=\"40px;\" rowspan=\"10\"></td>\n");
+			sb.append("																						<td width=\"100px;\" height=\"150px;\" rowspan=\"10\" valign=\"top\" style=\"margin:0;padding:0\">\n");
+			sb.append("																							<a href=\"#none\" target=\"_blank\" style=\"margin:0;padding:0\">\n");
+			sb.append("																								<span style=\"background: #f5f5f5;width: 100px;height: 150px;margin:0;padding:0\">\n");
+			sb.append("																									<img src=\"");
+			sb.append(imgUrl);
+			sb.append(orderChange.getSysImgNm());
+			sb.append("?RS=100\" alt=\"이미지\" style=\"width: 100px;height: 150px;margin:0;padding:0\">\n");
+			sb.append("																								</span>\n");
+			sb.append("																							</a>\n");
+			sb.append("																						</td>\n");
+			sb.append("																						<td width=\"30px;\" rowspan=\"10\"></td>\n");
+			sb.append("																						<td width=\"370px;\" height=\"10px;\"></td>\n");
+			sb.append("																						<td width=\"40px;\" rowspan=\"10\"></td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td style=\"font-family:'Apple SD Gothic Neo',verdana,Arial,'나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;\">\n");
+			sb.append("																							");
+			sb.append(orderChange.getBrandNm());
+			sb.append("\n");
+			sb.append("																						</td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td height=\"10px;\" style=\"height: 10px;\"></td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td style=\"color: #222222;font-size: 16px;font-weight: bold;letter-spacing: -0.05em;\">\n");
+			sb.append("																							<a href=\"#none\" target=\"_blank\" style=\"display: block; color: #222222; font-size: 16px; font-weight: bold; letter-spacing: -0.025em; text-decoration: none;\">\n");
+			sb.append("																								");
+			sb.append(orderChange.getGoodsNm());
+			sb.append("\n");
+			sb.append("																							</a>\n");
+			sb.append("																						</td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td height=\"10px;\" style=\"height: 10px;\"></td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td>\n");
+			if ("G056_S".equals(orderChange.getGoodsType())) {
+				for (int i=0; i < orderChange.getColorNmArr().length; i++) {
+					sb.append("																							<p style=\"margin: 0; padding: 0; font-family:'Apple SD Gothic Neo','나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;font-weight:200;color: #666666; line-height: 2;\">");
+					sb.append(orderChange.getItemNmArr()[i]);
+					sb.append(" / ");
+					sb.append(orderChange.getColorNmArr()[i]);
+					sb.append(" / ");
+					sb.append(orderChange.getOptCd2Arr()[i]);
+					sb.append("</p>\n");
+				}
+			} else {
+				sb.append("																							<p style=\"margin: 0; padding: 0; font-family:'Apple SD Gothic Neo','나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;font-weight:200;color: #666666; line-height: 2;\">");
+				sb.append(orderChange.getColorNm());
+				sb.append(" / ");
+				sb.append(orderChange.getOptCd2());
+				sb.append("</p>\n");
+			}
+			sb.append("																						</td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td height=\"5px;\" style=\"height: 5px;\"></td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td height=\"10px;\" style=\"height: 10px;\"></td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td>\n");
+			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");
+			sb.append("																						</td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td height=\"10px;\" style=\"height: 10px;\"></td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																					<tr>\n");
+			sb.append("																						<td height=\"20px;\" style=\"height: 20px;\"></td>\n");
+			sb.append("																					</tr>\n");
+			sb.append("																				</tbody>\n");
+			sb.append("																				<!-- // 아이템 컨텐츠 종료 -->\n");
+			sb.append("																			</table>\n");
+			sb.append("																		</td>\n");
+			sb.append("																	</tr>\n");
+			sb.append("																	<!-- // 아이템 테이블 종료 -->\n");
+			idx++;
+		}
+
+		return sb.toString();
+	}
+
 	/**
 	 * 주문 취소 자동메일 취소 사은품 정보 설정
 	 *

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 397 - 399
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 536 - 540
src/main/java/com/style24/persistence/mybatis/shop/TscOrderChange.xml


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio