Browse Source

충돌 수정

card007 5 năm trước cách đây
mục cha
commit
5c60ab9ca1

+ 450 - 0
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -19,6 +19,7 @@ import com.style24.core.biz.dao.TscOrderDao;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.core.support.util.CryptoUtils;
+import com.style24.persistence.domain.DeliveryFee;
 import com.style24.persistence.domain.GiftCard;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
@@ -3985,4 +3986,453 @@ public class TscOrderChangeService {
 	public OrderChange getKakaoOrderReturnInfo(Integer ordChgSq) {
 		return orderChangeDao.getKakaoOrderReturnInfo(ordChgSq);
 	}
+
+	/**
+	 * 마이페이지 취소 상세 정보 조회
+	 *
+	 * @param OrderChange
+	 * @return Collection<OrderChange>
+	 * @author card007
+	 * @since 2021. 04. 08
+	 */
+	public GagaMap getCreCancelDetailInfo(OrderChange orderChange) {
+		GagaMap map = new GagaMap();
+		Collection<OrderChange> result = new ArrayList<>();
+		String refundYn = "N";
+
+		for (OrderChange tmpOrderChange : orderChangeDao.getCreCancelDetailInfo(orderChange)) {
+			// 세트상품 옵션별 배열로 담기
+			if (tmpOrderChange.getItemNm().contains("!@!")) {
+				tmpOrderChange.setItemNmArr(tmpOrderChange.getItemNm().split("!@!"));
+				tmpOrderChange.setColorNmArr(tmpOrderChange.getColorNm().split(","));
+				tmpOrderChange.setOptCd1Arr(tmpOrderChange.getOptCd1().split(","));
+				tmpOrderChange.setOptCd2Arr(tmpOrderChange.getOptCd2().split(","));
+			} else {
+				String[] arr = {tmpOrderChange.getItemNm()}, arr2 = {tmpOrderChange.getColorNm()}, arr3 = {tmpOrderChange.getOptCd1()}, arr4 = {tmpOrderChange.getOptCd2()};
+				tmpOrderChange.setItemNmArr(arr);
+				tmpOrderChange.setColorNmArr(arr2);
+				tmpOrderChange.setOptCd1Arr(arr3);
+				tmpOrderChange.setOptCd2Arr(arr4);
+			}
+
+			// 취소 전표 확인 용 환불 여부 설정
+			String chgStat = tmpOrderChange.getChgStat();
+			if ("N".equals(refundYn) && (TscConstants.OrderChangeStat.PAYMENT_BEFORE_CANCEL.value().equals(chgStat) || TscConstants.OrderChangeStat.PAYMENT_AFTER_CANCEL.value().equals(chgStat))) {
+				refundYn = "Y";
+			}
+
+			result.add(tmpOrderChange);
+		}
+
+		OrderChange oneData = new OrderChange();
+		if (result.size() > 0) {
+			oneData = result.iterator().next();
+		}
+
+		map.set("refundYn", refundYn);
+		map.set("oneData", oneData);
+		map.set("cancelDetailList", result);
+
+		return map;
+	}
+
+	/**
+	 * 마이페이지 반품 상세 정보 조회
+	 *
+	 * @param OrderChange
+	 * @return Collection<OrderChange>
+	 * @author card007
+	 * @since 2021. 04. 13
+	 */
+	public GagaMap getCreReturnDetailInfo(OrderChange orderChange) {
+		GagaMap map = new GagaMap();
+		Collection<OrderChange> result = new ArrayList<>();
+		String refundYn = "N";
+
+		for (OrderChange tmpOrderChange : orderChangeDao.getCreReturnDetailInfo(orderChange)) {
+			// 세트상품 옵션별 배열로 담기
+			if (tmpOrderChange.getItemNm().contains("!@!")) {
+				tmpOrderChange.setItemNmArr(tmpOrderChange.getItemNm().split("!@!"));
+				tmpOrderChange.setColorNmArr(tmpOrderChange.getColorNm().split(","));
+				tmpOrderChange.setOptCd1Arr(tmpOrderChange.getOptCd1().split(","));
+				tmpOrderChange.setOptCd2Arr(tmpOrderChange.getOptCd2().split(","));
+			} else {
+				String[] arr = {tmpOrderChange.getItemNm()}, arr2 = {tmpOrderChange.getColorNm()}, arr3 = {tmpOrderChange.getOptCd1()}, arr4 = {tmpOrderChange.getOptCd2()};
+				tmpOrderChange.setItemNmArr(arr);
+				tmpOrderChange.setColorNmArr(arr2);
+				tmpOrderChange.setOptCd1Arr(arr3);
+				tmpOrderChange.setOptCd2Arr(arr4);
+			}
+
+			// 취소 전표 확인 용 환불 여부 설정
+			String chgStat = tmpOrderChange.getChgStat();
+			if ("N".equals(refundYn) && TscConstants.OrderChangeStat.RETURN_COMPLETE.value().equals(chgStat)) {
+				refundYn = "Y";
+			}
+
+			result.add(tmpOrderChange);
+		}
+
+		OrderChange oneData = new OrderChange();
+		if (result.size() > 0) {
+			oneData = result.iterator().next();
+		}
+
+		map.set("refundYn", refundYn);
+		map.set("oneData", oneData);
+		map.set("returnDetailList", result);
+
+		return map;
+	}
+
+	/**
+	 * 마이페이지 교환 상세 정보 조회
+	 *
+	 * @param OrderChange
+	 * @return Collection<OrderChange>
+	 * @author card007
+	 * @since 2021. 04. 13
+	 */
+	public GagaMap getCreExchangeDetailInfo(OrderChange orderChange) {
+		GagaMap map = new GagaMap();
+		Collection<OrderChange> result = new ArrayList<>();
+
+		for (OrderChange tmpOrderChange : orderChangeDao.getCreExchangeDetailInfo(orderChange)) {
+			// 세트상품 옵션별 배열로 담기
+			if (tmpOrderChange.getItemNm().contains("!@!")) {
+				tmpOrderChange.setItemNmArr(tmpOrderChange.getItemNm().split("!@!"));
+				tmpOrderChange.setColorNmArr(tmpOrderChange.getColorNm().split(","));
+				tmpOrderChange.setOptCd1Arr(tmpOrderChange.getOptCd1().split(","));
+				tmpOrderChange.setOptCd2Arr(tmpOrderChange.getOptCd2().split(","));
+			} else {
+				String[] arr = {tmpOrderChange.getItemNm()}, arr2 = {tmpOrderChange.getColorNm()}, arr3 = {tmpOrderChange.getOptCd1()}, arr4 = {tmpOrderChange.getOptCd2()};
+				tmpOrderChange.setItemNmArr(arr);
+				tmpOrderChange.setColorNmArr(arr2);
+				tmpOrderChange.setOptCd1Arr(arr3);
+				tmpOrderChange.setOptCd2Arr(arr4);
+			}
+
+			// 교환상품 옵션 정보 조회 및 설정
+			OrderChange changeOptionInfo = orderChangeDao.getExchangeGoodsOptionInfoList(tmpOrderChange);
+			if (changeOptionInfo.getItemNm().contains("!@!")) {
+				tmpOrderChange.setChgItemNmArr(changeOptionInfo.getItemNm().split("!@!"));
+				tmpOrderChange.setChgColorNmArr(changeOptionInfo.getColorNm().split(","));
+				tmpOrderChange.setChgOptCd1Arr(changeOptionInfo.getOptCd1().split(","));
+				tmpOrderChange.setChgOptCd2Arr(changeOptionInfo.getOptCd2().split(","));
+			} else {
+				tmpOrderChange.setChgItemNm(changeOptionInfo.getItemNm());
+				tmpOrderChange.setChgColorNm(changeOptionInfo.getColorNm());
+				tmpOrderChange.setChgOptCd1(changeOptionInfo.getOptCd1());
+				tmpOrderChange.setChgOptCd2(changeOptionInfo.getOptCd2());
+			}
+
+			result.add(tmpOrderChange);
+		}
+
+		OrderChange oneData = new OrderChange();
+		if (result.size() > 0) {
+			oneData = result.iterator().next();
+		}
+
+		map.set("oneData", oneData);
+		map.set("exchangeDetailList", result);
+
+		return map;
+	}
+
+	public GagaMap getMailOrderCancelReplaceInfo(OrderChange orderChange) {
+		GagaMap result = new GagaMap();
+
+
+		// 취소 상세 정보 조회
+		Collection<OrderChange> cancelList = orderChangeDao.getCreCancelDetailInfo(orderChange);
+
+		if (cancelList.size() == 0) {
+			throw new IllegalStateException(message.getMessage("FAIL_0005"));
+		}
+
+		OrderChange oneData = cancelList.iterator().next();
+
+		// 주문 정보 설정
+		result.setString("ordNm", oneData.getOrdNm());
+		result.setInt("ordNo", oneData.getOrdNo());
+		result.setString("ordDate", oneData.getOrdDate());
+		result.setString("ordDt", oneData.getOrdDt());
+
+		// 취소 정보 설정
+
+
+		String cancelInfo = this.getMailOrderCancelInfo(cancelList);
+		result.setString("cancelInfo", cancelInfo);
+
+		// 사은품 정보 조회
+		String freeGiftInfo = this.getMailFreeGiftCancelInfo(orderChange);
+		result.setString("freeGiftInfo", freeGiftInfo);
+
+		// 결제 정보 조회
+		int dcAmt = oneData.getRfCpn1Amt() + oneData.getRfTmtb1Amt() + oneData.getRfTmtb2Amt() + oneData.getRfGoodsCpnAmt() + oneData.getRfCartCpnAmt() + oneData.getRfDelvCpnAmt() + oneData.getRfPrePntAmt();
+
+		result.setInt("cnclRtnAmt", oneData.getRfCnclAmt());
+		result.setInt("delvFee", oneData.getRfDeliveryFee());
+		result.setInt("dcAmt", dcAmt);
+
+		// 버튼 URL 설정
+		String hasSsl = env.getProperty("has-ssl");
+		String protocol;
+
+		if ("true".equals(hasSsl)) {
+			protocol = "https:";
+		} else {
+			protocol = "http:";
+		}
+
+		String url = protocol + env.getProperty("domain.front");
+		if (orderChange.getCustNo() > 0) {
+			url += "/mypage/cre/list/form";
+		} else {
+			url += "/customer/noncust/order/confirm/form";
+		}
+
+		result.setString("creButtonUrl", url);
+		return result;
+	}
+
+	@SuppressWarnings("unchecked")
+	public String getMailOrderCancelInfo(Collection<OrderChange> cancelList) {
+		List<GagaMap> cancelDelvList = new ArrayList<>();
+		List<OrderChange> cancelDetailList = new ArrayList<>();
+		GagaMap cancelMap = new GagaMap();
+
+		OrderChange oneData = cancelList.iterator().next();
+		Integer ordNo = oneData.getOrdNo();
+
+		String delvFeeCd = oneData.getDelvFeeCd();
+		for (OrderChange cancelInfo : cancelList) {
+			if (!delvFeeCd.equals(cancelInfo.getDelvFeeCd())) {
+				// 취소 배송비 정보 조회
+				DeliveryFee deliveryFee = new DeliveryFee();
+				deliveryFee.setOrdNo(ordNo);
+				deliveryFee.setDelvFeeCd(delvFeeCd);
+
+				Collection<DeliveryFee> deliveryFeeList = deliveryService.getDeliveryFee(deliveryFee);
+
+				// 취소 배송비 설정
+				int delvFee = 0;
+				if (deliveryFeeList != null && deliveryFeeList.size() > 0) {
+					delvFee = deliveryFeeList.iterator().next().getRealDelvAmt();
+				}
+
+				cancelMap.setInt("delvFee", delvFee);
+				cancelMap.set("cancelDetailList", cancelDetailList);
+				cancelMap.setString("delvFeeCd", delvFeeCd);
+				cancelDelvList.add(cancelMap);
+
+				cancelDetailList = new ArrayList<>();
+				cancelMap = new GagaMap();
+				delvFeeCd = cancelInfo.getDelvFeeCd();
+			}
+
+			// 세트상품 옵션별 배열로 담기
+			if (cancelInfo.getItemNm().contains("!@!")) {
+				cancelInfo.setItemNmArr(cancelInfo.getItemNm().split("!@!"));
+				cancelInfo.setColorNmArr(cancelInfo.getColorNm().split(","));
+				cancelInfo.setOptCd1Arr(cancelInfo.getOptCd1().split(","));
+				cancelInfo.setOptCd2Arr(cancelInfo.getOptCd2().split(","));
+			} else {
+				String[] arr = {cancelInfo.getItemNm()}, arr2 = {cancelInfo.getColorNm()}, arr3 = {cancelInfo.getOptCd1()}, arr4 = {cancelInfo.getOptCd2()};
+				cancelInfo.setItemNmArr(arr);
+				cancelInfo.setColorNmArr(arr2);
+				cancelInfo.setOptCd1Arr(arr3);
+				cancelInfo.setOptCd2Arr(arr4);
+			}
+
+			cancelDetailList.add(cancelInfo);
+		}
+
+		DeliveryFee deliveryFee = new DeliveryFee();
+		deliveryFee.setOrdNo(ordNo);
+		deliveryFee.setDelvFeeCd(delvFeeCd);
+
+		Collection<DeliveryFee> deliveryFeeList = deliveryService.getDeliveryFee(deliveryFee);
+
+		int delvFee = 0;
+		if (deliveryFeeList != null && deliveryFeeList.size() > 0) {
+			delvFee = deliveryFeeList.iterator().next().getRealDelvAmt();
+		}
+
+		cancelMap.setInt("delvFee", delvFee);
+		cancelMap.set("cancelDetailList", cancelDetailList);
+		cancelMap.setString("delvFeeCd", delvFeeCd);
+		cancelDelvList.add(cancelMap);
+
+		StringBuilder sb = new StringBuilder();
+
+		sb.append("											<table style=\"width:100%;margin:0;padding:0;font-size: 14px;\" cellspacing=\"0\" cellpadding=\"0\">");
+		sb.append("												<tbody>");
+		sb.append("													<tr>");
+		sb.append("													    <td height=\"50px;\" style=\"height: 50px;\"></td>");
+		sb.append("													</tr>");
+		sb.append("													<tr>");
+		sb.append("													    <th colspan=\"2\" style=\"text-align: left;font-size: 18px;color: #222222;\" align=\"left\">");
+		sb.append("															주문취소 상품정보");
+		sb.append("														</th>");
+		sb.append("													</tr>");
+		sb.append("													<tr>");
+		sb.append("													    <td height=\"20px;\" style=\"height: 20px;\"></td>");
+		sb.append("													</tr>");
+		// for문 시작
+		for (GagaMap map : cancelDelvList) {
+			sb.append("													<tr>");
+			sb.append("														<td>");
+			sb.append("															<table style=\"border: 1px; border-color: #dddddd; border-style: solid; box-sizing: border-box; width:100%;margin:0;padding:0\" cellspacing=\"0\" cellpadding=\"0\">");
+			sb.append("																<tbody>");
+			sb.append("																	<tr>");
+			sb.append("																		<td colspan=\"5\" height=\"20px;\" style=\"height: 20px;\"></td>");
+			sb.append("																	</tr>");
+			sb.append("																	<tr>");
+			sb.append("																		<td width=\"40px;\"></td>");
+			sb.append("																		<td colspan=\"3\" style=\"text-align: left;font-size: 18px;font-family:'Apple SD Gothic Neo','나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;font-weight:600;color: #222222;\" align=\"left\">");
+			sb.append("																			STYLE24 총알배송");
+			sb.append("																		</td>");
+			sb.append("																	    <td width=\"40px;\"></td>");
+			sb.append("																	</tr>");
+			sb.append("																	<tr>");
+			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>");
+			sb.append("																	</tr>");
+			sb.append("																	<tr>");
+			sb.append("																	    <td height=\"30px;\" style=\"height: 30px;\"></td>");
+			sb.append("																	</tr>");
+			for (OrderChange cancelDetail : (List<OrderChange>) map.get("cancelDetailList")) {
+				sb.append("																	<tr>");
+				sb.append("																	    <td width=\"40px;\" rowspan=\"9\"></td>");
+				sb.append("																	    <td width=\"100px;\" height=\"150px;\" rowspan=\"9\" style=\"margin:0;padding:0\">");
+				sb.append("																	        <a href=\"#none\" target=\"_blank\" style=\"margin:0;padding:0\">"); // 
+				sb.append("																	            <span style=\"background: #f5f5f5;width: 100px;height: 150px;margin:0;padding:0\">");
+				sb.append("																	                <img src=\"/images/mo/thumb/tmp_pdLookbook2.jpg\" alt=\"이미지\" style=\"width: 100px;height: 150px;margin:0;padding:0\">"); // sysImgNm
+				sb.append("																	            </span>");
+				sb.append("																	        </a>");
+				sb.append("																	    </td>");
+				sb.append("																	    <td width=\"30px;\" rowspan=\"9\"></td>");
+				sb.append("																	    <td width=\"370px;\" height=\"10px;\"></td>");
+				sb.append("																	    <td width=\"40px;\" rowspan=\"9\"></td>");
+				sb.append("																	</tr>");
+				sb.append("																	<tr>");
+				sb.append("																	    <td style=\"font-family:'Apple SD Gothic Neo',verdana,Arial,'나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic, Helvetica, sans-serif;\">");
+				sb.append("																			NBA"); // brandNm
+				sb.append("																		</td>");
+				sb.append("																	</tr>");
+				sb.append("																	<tr>");
+				sb.append("																	    <td height=\"5px;\" style=\"height: 5px;\"></td>");
+				sb.append("																	</tr>");
+				sb.append("																	<tr>");
+				sb.append("																	    <td style=\"color: #222222;font-size: 16px;font-weight: bold;letter-spacing: -0.05em;\">");
+				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;\">");
+				sb.append("																				남성 라그란 소매배색 싸이로 티셔츠"); // goodsNm
+				sb.append("																			</a>");
+				sb.append("																	    </td>");
+				sb.append("																	</tr>");
+				sb.append("																	<tr>");
+				sb.append("																	    <td height=\"20px;\" style=\"height: 20px;\"></td>");
+				sb.append("																	</tr>");
+				sb.append("																	<tr>");
+				sb.append("																	    <td>옵션1</td>"); // option
+				sb.append("																	</tr>");
+				sb.append("																	<tr>");
+				sb.append("																	    <td height=\"20px;\" style=\"height: 20px;\"></td>");
+				sb.append("																	</tr>");
+				sb.append("																	<tr>");
+				sb.append("																	    <td>");
+				sb.append("																	        <span>1개</span>"); // chgQty
+				sb.append("																	        <span style=\"width: 12px;padding-left:12px;\"></span>");
+				sb.append("																	        <span style=\"width: 2px; height: 14px; background: #f5f5f5;\"></span>");
+				sb.append("																	        <span style=\"width: 12px;padding-right:12px;\"></span>");
+				// sb.append("																	        <span style=\"text-decoration: line-through;color: #888888;\"><span>19,990</span>원</span>");
+				// sb.append("																	        <span style=\"font-weight: 500;\"><span>19,990</span>원</span>");
+				sb.append("																	    </td>");
+				sb.append("																	</tr>");
+				sb.append("																	<tr>");
+				sb.append("																	    <td height=\"35px;\" style=\"height: 35px;\"></td>");
+				sb.append("																	</tr>");
+				sb.append("																	<tr>");
+				sb.append("																	    <td height=\"20px;\" style=\"height: 20px;\"></td>");
+				sb.append("																	</tr>");
+				// delvFee 존재할 시 처리
+				sb.append("																	<tr>");
+				sb.append("																	    <td width=\"40px;\"></td>");
+				sb.append("																	    <td colspan=\"3\" height=\"20px;\" style=\"height: 45px; background: #f5f5f5;\" bgcolor=\"#f5f5f5\">");
+				sb.append("																	        <span style=\"width: 12px;padding-left:12px;\"></span>");
+				sb.append("																	        <span>배송비</span>");
+				sb.append("																	        <span style=\"width: 12px;padding-right:12px;\"></span>");
+				sb.append("																	        <span>");
+				sb.append("																	            <span>2,500</span>원"); // delvFee
+				sb.append("																			</span>");
+				sb.append("														                </td>");
+				sb.append("														                <td width=\"40px;\"></td>");
+				sb.append("														            </tr>");
+				// //delvFee 존재할 시 처리
+				sb.append("														            <tr>");
+				sb.append("														                <td height=\"20px;\" style=\"height: 20px;\"></td>");
+				sb.append("														            </tr>");
+			}
+			sb.append("														        </tbody>");
+			sb.append("														    </table>");
+			sb.append("														</td>");
+			sb.append("													</tr>");
+		}
+		// for문 끝
+		sb.append("												</tbody>");
+		sb.append("											</table>");
+
+		return sb.toString();
+	}
+
+	public String getMailFreeGiftCancelInfo(OrderChange orderChange) {
+		Collection<OrderChange> freeGiftList = orderChangeDao.getCancelFreeGiftList(orderChange);
+
+		StringBuilder sb = new StringBuilder();
+
+		sb.append("											<table style=\"width:100%;margin:0;padding:0;font-size: 14px;\" cellspacing=\"0\" cellpadding=\"0\">");
+		sb.append("												<tbody>");
+		sb.append("													<tr>");
+		sb.append("														<td height=\"50px;\" style=\"height: 50px;\"></td>");
+		sb.append("													</tr>");
+		sb.append("													<tr>");
+		sb.append("														<th colspan=\"4\" style=\"text-align: left;font-size: 18px;color: #222222;\" align=\"left\">");
+		sb.append("															사은품 정보");
+		sb.append("														</th>");
+		sb.append("													</tr>");
+		sb.append("													<tr>");
+		sb.append("														<td height=\"20px;\" style=\"height: 20px;\"></td>");
+		sb.append("													</tr>");
+		sb.append("													<tr>");
+		sb.append("													    <td colspan=\"4\" height=\"1\" bgcolor=\"#000000\" style=\"height: 1px; background: #000000;\"></td>");
+		sb.append("													</tr>");
+		sb.append("													<tr>");
+		sb.append("													    <td height=\"20px;\" style=\"height: 20px;\"></td>");
+		sb.append("													</tr>");
+		// for문 시작
+		sb.append("													<tr>");
+		sb.append("													    <td width=\"40px;\"></td>");
+		sb.append("													    <td width=\"250px;\" align=\"left\" style=\"text-align: left;\">");
+		sb.append("														TBJ 굿즈 인형");
+		sb.append("														</td>");
+		sb.append("														<td width=\"250px;\" align=\"left\" style=\"text-align: left;\">");
+		sb.append("														    <span style=\"color:#fd4802;font-family:verdana,Arial, Helvetica, sans-serif;\">");
+		sb.append("														        <span>-9,999,999</span>P");
+		sb.append("															</span>");
+		sb.append("														</td>");
+		sb.append("														<td width=\"40px;\"></td>");
+		sb.append("													</tr>");
+		sb.append("													<tr>");
+		sb.append("														<td height=\"20px;\" style=\"height: 20px;\"></td>");
+		sb.append("													</tr>");
+		// for문 종료
+		sb.append("													<tr>");
+		sb.append("														<td colspan=\"4\" height=\"1\" bgcolor=\"#dddddd\" style=\"height: 1px; background: #dddddd;\"></td>");
+		sb.append("													</tr>");
+		sb.append("												</tbody>");
+		sb.append("											</table>");
+
+		return sb.toString();
+	}
 }