Browse Source

반품 안내 메일 개발 임시 커밋

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

+ 164 - 1
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -4342,7 +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");
-			sb.append(getMailCreListInfo((List<OrderChange>) map.get("cancelDetailList")));
+			sb.append(this.getMailCreListInfo((List<OrderChange>) map.get("cancelDetailList")));
 			sb.append("																	<!-- 배송비 시작 -->\n");
 			sb.append("																	<tr>\n");
 			sb.append("																		<td width=\"40px;\"></td>\n");
@@ -4577,4 +4577,167 @@ public class TscOrderChangeService {
 
 		return sb.toString();
 	}
+
+	/**
+	 * 반품 안내 메일 정보 조회
+	 *
+	 * @param OrderChange
+	 * @return Gagamap
+	 * @author card007
+	 * @since 2021. 06. 10
+	 */
+	public GagaMap getMailOrderReturnReplaceInfo(OrderChange orderChange) {
+		GagaMap result = new GagaMap();
+		DecimalFormat df = new DecimalFormat("###,###");
+
+		// 반품 상세 정보 조회
+		Collection<OrderChange> returnList = orderChangeDao.getCreReturnDetailInfo(orderChange);
+
+		if (returnList.size() == 0) {
+			throw new IllegalStateException(message.getMessage("FAIL_0005"));
+		}
+
+		OrderChange oneData = returnList.iterator().next();
+
+		// 주문 정보 설정
+		result.setString("ordNm", oneData.getOrdNm());
+		result.setInt("ordNo", oneData.getOrdNo());
+		result.setString("ordDate", oneData.getOrdDate());
+		result.setString("ordDt", oneData.getOrdDt());
+		result.setString("ordEmail", oneData.getOrdEmail());
+		result.setInt("custNo", oneData.getCustNo());
+		result.setString("wdGbNm", "W".equals(oneData.getWdGb()) ? "회수요청" : "직접배송");
+
+		if (StringUtils.isBlank(oneData.getOrdEmail())) {
+			return result;
+		}
+
+		// 회수지 정보 설정
+		if ("W".equals(oneData.getWdGb())) {
+			// TODO
+			// 회수지 정보 HTML 작성
+		}
+
+		// 반품 정보 설정
+		// String returnInfo = this.getMailOrderReturnInfo(returnList);
+		// result.setString("returnInfo", returnInfo);
+
+		// 결제 정보 조회
+		int dcAmt = oneData.getRfCpn1Amt() + oneData.getRfTmtb1Amt() + oneData.getRfTmtb2Amt() + oneData.getRfGoodsCpnAmt() + oneData.getRfCartCpnAmt() + oneData.getRfDelvCpnAmt() + oneData.getRfPrePntAmt();
+		int totalRefundAmt = oneData.getRefundAmt() + oneData.getRfPntAmt() + oneData.getRfGfcdUseAmt();
+
+		String pgGb = oneData.getPgGb();
+		String payMeansNm;
+		if (TscConstants.PgGb.KCP.value().equals(pgGb)) {
+			payMeansNm = oneData.getPayMeansNm();
+		} else if (TscConstants.PgGb.NAVER.value().equals(pgGb)) {
+			payMeansNm = "네이버페이";
+		} else if (TscConstants.PgGb.KAKAO.value().equals(pgGb)) {
+			payMeansNm = "카카오페이";
+		} else if (TscConstants.PgGb.ISTYLE.value().equals(pgGb)) {
+			payMeansNm = "상품권";
+		} else if (TscConstants.PgGb.PAYCO.value().equals(pgGb)) {
+			payMeansNm = "PAYCO";
+		} else {
+			payMeansNm = "";
+		}
+
+		result.setString("cnclRtnAmt", df.format(oneData.getRfCnclAmt()));
+		result.setString("addPayCost", df.format(oneData.getAddPayCost()));
+		result.setString("dcAmt", dcAmt == 0 ? "0" : "-" + df.format(dcAmt));
+		result.setString("payMeansNm", payMeansNm);
+		result.setString("refundAmt", df.format(oneData.getRefundAmt()));
+		result.setString("rfPntAmt", df.format(oneData.getRfPntAmt()));
+		result.setString("gfcdUseAmt", df.format(oneData.getRfGfcdUseAmt()));
+		result.setString("totalRefundAmt", df.format(totalRefundAmt));
+
+		// 버튼 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;
+	}
+
+	/**
+	 * 반품 안내 메일 상품 정보 설정
+	 *
+	 * @param Collection<OrderChange>
+	 * @return String
+	 * @author card007
+	 * @since 2021.06.10
+	 */
+	@SuppressWarnings("unchecked")
+	public String getMailOrderReturnInfo(Collection<OrderChange> ReturnList) {
+		List<GagaMap> returnDelvList = new ArrayList<>();
+		List<OrderChange> returnDetailList = new ArrayList<>();
+		GagaMap cancelMap = new GagaMap();
+		DecimalFormat df = new DecimalFormat("###,###");
+
+		OrderChange oneData = ReturnList.iterator().next();
+		Integer ordNo = oneData.getOrdNo();
+		Integer ordChgSq = oneData.getOrdChgSq();
+
+		String selfGoodsYn = oneData.getSelfGoodsYn();
+		String delvFeeCd = "Y".equals(selfGoodsYn) ? "WMS" : oneData.getDelvFeeCd();
+		String supplyCompNm = oneData.getSupplyCompNm();
+		for (OrderChange returnInfo : ReturnList) {
+			String delvFeeCdTemp = "Y".equals(returnInfo.getSelfGoodsYn()) ? "WMS" : returnInfo.getDelvFeeCd();
+			if (!delvFeeCd.equals(delvFeeCdTemp)) {
+				cancelMap.set("returnDetailList", returnDetailList);
+				cancelMap.setString("delvFeeCd", delvFeeCd);
+				cancelMap.setString("supplyCompNm", supplyCompNm);
+				cancelMap.setString("selfGoodsYn", selfGoodsYn);
+				returnDelvList.add(cancelMap);
+
+				returnDetailList = new ArrayList<>();
+				cancelMap = new GagaMap();
+				delvFeeCd = delvFeeCdTemp;
+				supplyCompNm = returnInfo.getSupplyCompNm();
+				selfGoodsYn = returnInfo.getSelfGoodsYn();
+			}
+
+			// 세트상품 옵션별 배열로 담기
+			if (returnInfo.getItemNm().contains("!@!")) {
+				returnInfo.setItemNmArr(returnInfo.getItemNm().split("!@!"));
+				returnInfo.setColorNmArr(returnInfo.getColorNm().split(","));
+				returnInfo.setOptCd1Arr(returnInfo.getOptCd1().split(","));
+				returnInfo.setOptCd2Arr(returnInfo.getOptCd2().split(","));
+			} else {
+				String[] arr = {returnInfo.getItemNm()}, arr2 = {returnInfo.getColorNm()}, arr3 = {returnInfo.getOptCd1()}, arr4 = {returnInfo.getOptCd2()};
+				returnInfo.setItemNmArr(arr);
+				returnInfo.setColorNmArr(arr2);
+				returnInfo.setOptCd1Arr(arr3);
+				returnInfo.setOptCd2Arr(arr4);
+			}
+
+			returnDetailList.add(returnInfo);
+		}
+
+		cancelMap.set("returnDetailList", returnDetailList);
+		cancelMap.setString("delvFeeCd", delvFeeCd);
+		cancelMap.setString("supplyCompNm", supplyCompNm);
+		cancelMap.setString("selfGoodsYn", selfGoodsYn);
+		returnDelvList.add(cancelMap);
+
+		StringBuilder sb = new StringBuilder();
+
+		// TODO
+		// 반품 상품 정보 HTML 작성
+
+		return sb.toString();
+	}
 }

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

@@ -562,8 +562,6 @@
 		     , UPD_DT
 		  FROM TB_ORDER_DETAIL_ITEM
 		 WHERE 1 = 1
-		   AND ORD_NO = #{ordNo}
-		   AND ORD_DTL_NO = #{ordDtlNo}
 		   AND ORD_DTL_ITEM_SQ = #{ordDtlItemSq}
 	</insert>
 
@@ -635,9 +633,7 @@
 		     , #{updNo}
 		     , NOW()
 		  FROM TB_ORDER_DETAIL_ITEM
-		 WHERE ORD_NO = #{ordNo}
-		   AND ORD_DTL_NO = #{ordDtlNo}
-		   AND ORD_DTL_ITEM_SQ = #{ordDtlItemSq}
+		 WHERE ORD_DTL_ITEM_SQ = #{ordDtlItemSq}
 	</insert>
 	
 	<!-- 상품옵션재고정보 등록 -->
@@ -2720,6 +2716,7 @@
 		UPDATE TB_CUST_COUPON CC
 		 INNER JOIN TB_ORDER_DETAIL OD
 		    ON CC.CUST_CPN_SQ = OD.GOODS_CPN_SQ
+		   AND OD.ORD_NO = #{ordNo}
 		   SET CC.USED_DT = NULL
 		     , CC.UPD_NO = #{updNo}
 		     , CC.UPD_DT = NOW()
@@ -2736,6 +2733,7 @@
 		 INNER JOIN (SELECT ORD_NO
 		                  , CART_CPN_SQ
 		               FROM TB_ORDER_DETAIL
+		              WHERE ORD_NO = #{ordNo}
 		              GROUP BY ORD_NO
 		                  , CART_CPN_SQ) OD
 		    ON CC.CUST_CPN_SQ = OD.CART_CPN_SQ
@@ -2753,6 +2751,7 @@
 		                  , DELV_CPN_SQ
 		               FROM TB_DELIVERY_FEE
 		              WHERE DELV_FEE_GB = 'G018_10'
+		                AND ORD_NO = #{ordNo}
 		              GROUP BY ORD_NO
 		                  , DELV_CPN_SQ) DF
 		    ON CC.CUST_CPN_SQ = DF.DELV_CPN_SQ
@@ -4021,6 +4020,7 @@
 		     , Z.CHG_GB
 		     , Z.CHG_QTY
 		     , Z.ORD_DT
+		     , Z.ORD_DATE
 		     , Z.CHG_DATE
 		     , Z.CHG_TIME
 		     , Z.CHG_DT
@@ -4073,10 +4073,14 @@
 		     , Z.WD_INVOICE_NO
 		     , Z.SHIP_COMP_CD
 		     , Z.SHIP_COMP_NM
+		     , Z.ORD_NM
+		     , Z.ORD_EMAIL
+		     , Z.CUST_NO
 		  FROM (SELECT OC.ORD_CHG_SQ
 		             , OC.CHG_GB
 		             , OCD.CHG_QTY
 		             , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')                                AS ORD_DT
+		             , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d %H:%i')                          AS ORD_DATE
 		             , DATE_FORMAT(OCDH.REG_DT, '%Y.%m.%d')                             AS CHG_DATE
 		             , DATE_FORMAT(OCDH.REG_DT,'%H:%i:%S')                              AS CHG_TIME
 		             , DATE_FORMAT(OCD.REG_DT, '%Y.%m.%d')                              AS CHG_DT
@@ -4139,6 +4143,9 @@
 		             , (SELECT SHIP_COMP_NM
 		                  FROM TB_SHIP_COMPANY SC
 		                 WHERE SC.SHIP_COMP_CD = OC.SHIP_COMP_CD)                       AS SHIP_COMP_NM
+		             , O.ORD_NM
+		             , O.ORD_EMAIL
+		             , O.CUST_NO
 		          FROM TB_ORDER_CHANGE OC
 		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
 		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
@@ -4187,13 +4194,13 @@
 		           AND OC.ORD_CHG_SQ = #{ordChgSq}
 		</if>
 		) Z
-		 GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
+		 GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.ORD_DATE, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
 		        , Z.CHG_STAT_NM, Z.ORD_NO, Z.ORD_AMT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.CNCL_RTN_AMT, Z.CPN1_DC_AMT, Z.REAL_ORD_AMT, Z.PNT_DC_AMT
 		        , Z.GFCD_USE_AMT, Z.ORD_DTL_NO, Z.GOODS_CD, Z.BRAND_NM, Z.SHOT_DELV_YN, Z.SELF_GOODS_YN, Z.GOODS_NM
 		        , Z.GOODS_TYPE, Z.PRICE_ORG, Z.PRICE_SALE, Z.ADD_PAY_COST, Z.SYS_IMG_NM, Z.GIFT_PACK_YN, Z.REFUND_AMT, Z.RF_CPN1_AMT, Z.RF_TMTB1_AMT
 		        , Z.RF_TMTB2_AMT, Z.RF_GOODS_CPN_AMT, Z.RF_CART_CPN_AMT, Z.RF_DELV_CPN_AMT, Z.RF_PNT_AMT, Z.RF_PRE_PNT_AMT, Z.RF_GFCD_USE_AMT, Z.RF_CNCL_AMT
 		        , Z.RF_DELIVERY_FEE, Z.RF_REAL_CNCL_AMT, Z.PG_GB, Z.PAY_MEANS, Z.PAY_MEANS_NM, Z.WD_GB, Z.CHGER_NM, Z.CHGER_PHNNO, Z.CHGER_BASE_ADDR
-		        , Z.CHGER_DTL_ADDR, Z.CHGER_RTN_MEMO, Z.WD_INVOICE_NO, Z.SHIP_COMP_CD, Z.SHIP_COMP_NM
+		        , Z.CHGER_DTL_ADDR, Z.CHGER_RTN_MEMO, Z.WD_INVOICE_NO, Z.SHIP_COMP_CD, Z.SHIP_COMP_NM, Z.ORD_NM, Z.ORD_EMAIL, Z.CUST_NO
 		 ORDER BY Z.ORD_CHG_SQ DESC
 	</select>
 
@@ -4208,6 +4215,7 @@
 		     , Z.CHG_GB
 		     , Z.CHG_QTY
 		     , Z.ORD_DT
+		     , Z.ORD_DATE
 		     , Z.CHG_DATE
 		     , Z.CHG_TIME
 		     , Z.CHG_DT
@@ -4260,10 +4268,14 @@
 		     , Z.CARD_NM
 		     , Z.CARD_MIPS
 		     , Z.CHG_ORD_DTL_STAT
+		     , Z.ORD_NM
+		     , Z.ORD_EMAIL
+		     , Z.CUST_NO
 		  FROM (SELECT OC.ORD_CHG_SQ
 		             , OC.CHG_GB
 		             , OCD.CHG_QTY
 		             , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')                                AS ORD_DT
+		             , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d %H:%i')                          AS ORD_DATE
 		             , DATE_FORMAT(OCDH.REG_DT, '%Y.%m.%d')                             AS CHG_DATE
 		             , DATE_FORMAT(OCDH.REG_DT,'%H:%i:%S')                              AS CHG_TIME
 		             , DATE_FORMAT(OCD.REG_DT, '%Y.%m.%d')                              AS CHG_DT
@@ -4326,6 +4338,9 @@
 		             , P.CARD_NM
 		             , IF(P.CARD_MIPS = 0, '일시불', CONCAT(P.CARD_MIPS, '개월'))          AS CARD_MIPS
 		             , OD2.ORD_DTL_STAT                                                 AS CHG_ORD_DTL_STAT
+		             , O.ORD_NM
+		             , O.ORD_EMAIL
+		             , O.CUST_NO
 		          FROM TB_ORDER_CHANGE OC
 		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
 		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
@@ -4381,12 +4396,13 @@
 		           AND OC.ORD_CHG_SQ = #{ordChgSq}
 		</if>
 		) Z
-		 GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
+		 GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.ORD_DATE, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
 		        , Z.CHG_STAT_NM, Z.ORD_DTL_STAT, Z.EXCHANGE_SHIP_COMP_CD, Z.EXCHANGE_INVOICE_NO, Z.ORD_NO, Z.ORD_AMT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.CNCL_RTN_AMT
 		        , Z.CPN1_DC_AMT, Z.REAL_ORD_AMT, Z.PNT_DC_AMT, Z.GFCD_USE_AMT, Z.ORD_DTL_NO, Z.GOODS_CD, Z.BRAND_NM, Z.SHOT_DELV_YN, Z.SELF_GOODS_YN, Z.GOODS_NM
 		        , Z.GOODS_TYPE, Z.PRICE_ORG, Z.PRICE_SALE, Z.ADD_PAY_COST, Z.SYS_IMG_NM, Z.GIFT_PACK_YN, Z.WD_GB, Z.CHGER_NM, Z.CHGER_PHNNO, Z.CHGER_BASE_ADDR
 		        , Z.CHGER_DTL_ADDR, Z.CHGER_RTN_MEMO, Z.CHG_MEMO, Z.WD_INVOICE_NO, Z.SHIP_COMP_CD, Z.SHIP_COMP_NM, Z.DELV_ADDR_SQ, Z.RECIP_NM, Z.RECIP_PHNNO
 		        , Z.RECIP_BASE_ADDR, Z.RECIP_DTL_ADDR, Z.DELV_MEMO, Z.PG_TID, Z.PAY_MEANS, Z.PAY_MEANS_NM, Z.CARD_NM, Z.CARD_MIPS, Z.CHG_ORD_DTL_STAT
+		        , Z.ORD_NM, Z.ORD_EMAIL, Z.CUST_NO
 		 ORDER BY Z.ORD_CHG_SQ DESC
 	</select>