Просмотр исходного кода

Merge branch 'card007' into develop

card007 5 лет назад
Родитель
Сommit
b2714253bc

+ 10 - 0
src/main/java/com/style24/core/biz/dao/TscOrderChangeDao.java

@@ -741,4 +741,14 @@ public interface TscOrderChangeDao {
 	 * @since 2021. 06. 08
 	 */
 	OrderChange getKakaoOrderCancelInfo(Integer ordChgSq);
+
+	/**
+	 * 반품 알림톡 정보 조회
+	 *
+	 * @param Integer
+	 * @return OrderChange
+	 * @author card007
+	 * @since 2021. 06. 08
+	 */
+	OrderChange getKakaoOrderReturnInfo(Integer ordChgSq);
 }

+ 76 - 0
src/main/java/com/style24/core/biz/service/TscKakaotalkService.java

@@ -969,4 +969,80 @@ public class TscKakaotalkService {
 			}
 		}
 	}
+
+	/**
+	 * 반품접수 알림톡
+	 *
+	 * @param OrderChange
+	 * @param senderNo
+	 * @author card007
+	 * @since 2021. 06. 07
+	 */
+	@Transactional("shopTxnManager")
+	public void sendOrderReturnRequest(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.RETURN_ADD_COST.value();
+			contactType = TscConstants.ContactType.RETURN_ADD_PAYMENT.value();
+			contactContents = "반품-추가배송비결제안내";
+		} else {
+			ansSq = SsgKakaoSender.KakaoAnswerSq.RETURN_REQUEST.value();
+			contactType = TscConstants.ContactType.RETURN_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())) {
+				SsgDirectMessage dm = new SsgDirectMessage();
+				dm.setFuserid(String.valueOf(senderNo));
+				dm.setFdestine(orderChange.getOrdPhnno());
+				dm.setFkkoresendtype("LMS");
+				dm.setButtonNm("반품 접수 확인");
+
+				kakaoSender.send(ansSq, dm, replaceInfo);
+			}
+
+			try {
+				// 고객접촉이력 정보
+				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
+			}
+		}
+	}
 }

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

@@ -3960,4 +3960,16 @@ public class TscOrderChangeService {
 	public OrderChange getKakaoOrderCancelInfo(Integer ordChgSq) {
 		return orderChangeDao.getKakaoOrderCancelInfo(ordChgSq);
 	}
+
+	/**
+	 * 반품 알림톡 정보 조회
+	 *
+	 * @param Integer
+	 * @return OrderChange
+	 * @author card007
+	 * @since 2021. 06. 08
+	 */
+	public OrderChange getKakaoOrderReturnInfo(Integer ordChgSq) {
+		return orderChangeDao.getKakaoOrderReturnInfo(ordChgSq);
+	}
 }

+ 2 - 0
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -94,6 +94,8 @@ public class TscConstants {
 		RETURN_COMPLETED("G054_502"),			// 반품-반품회수완료
 		EXCHANGE_RECEIPT("G054_503"),			// 교환-교환접수완료
 		EXCHANGE_COMPLETED("G054_504"),			// 교환-교환회수완료
+		RETURN_ADD_PAYMENT("G054_506"),			// 반품-추가배송비결제안내
+		EXCHANGE_ADD_PAYMENT("G054_507"),		// 교환-추가배송비결제안내
 		GOODS_RESTOCK("G054_701");				// 재입고 알림
 
 

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

@@ -3789,11 +3789,46 @@ WHERE WD_INVOICE_NO  = #{wdInvoiceNo}
 		         INNER JOIN TB_GOODS G
 		            ON OD.GOODS_CD = G.GOODS_CD
 		         WHERE OC.ORD_CHG_SQ = #{ordChgSq}
+		           AND OC.CHG_GB IN ('G680_10', 'G680_20')
 		         GROUP BY O.ORD_NO, OC.ORD_CHG_SQ, OCD.ORD_DTL_NO, O.ORD_NM, O.ORD_PHNNO, O.MALL_GB, R.REFUND_AMT, G.GOODS_NM, P.PAY_MEANS
 		                , PAY_MEANS_NM, P.PG_GB, O.CUST_NO
 		        ) Z
 		 WHERE Z.RNUM = 1
 	</select>
+
+	<!-- 반품 알림톡 정보 조회 -->
+	<select id="getKakaoOrderReturnInfo" parameterType="int" resultType="OrderChange">
+		/* TscOrderChange.getKakaoOrderReturnInfo */
+		SELECT Z.*
+		  FROM (SELECT O.ORD_NO
+		             , OC.ORD_CHG_SQ
+		             , O.ORD_NM
+		             , O.ORD_PHNNO
+		             , O.MALL_GB
+		             , G.GOODS_NM
+		             , O.CUST_NO
+		             , OC.CHGER_BASE_ADDR
+		             , OC.CHGER_DTL_ADDR
+		             , OC.WD_GB
+		             , OC.ADD_PAY_COST
+		             , COUNT(*) OVER (PARTITION BY OC.ORD_CHG_SQ) - 1 AS GOODS_CNT
+		             , ROW_NUMBER() OVER (PARTITION BY OC.ORD_CHG_SQ ORDER BY OCD.ORD_DTL_NO) AS RNUM
+		          FROM TB_ORDER_CHANGE OC
+		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
+		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
+		         INNER JOIN TB_ORDER_DETAIL OD
+		            ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+		         INNER JOIN TB_ORDER O
+		            ON O.ORD_NO = OD.ORD_NO
+		         INNER JOIN TB_GOODS G
+		            ON OD.GOODS_CD = G.GOODS_CD
+		         WHERE OC.ORD_CHG_SQ = #{ordChgSq}
+		           AND OC.CHG_GB = 'G680_30'
+		         GROUP BY O.ORD_NO, OC.ORD_CHG_SQ, OCD.ORD_DTL_NO, O.ORD_NM, O.ORD_PHNNO, O.MALL_GB, G.GOODS_NM, O.CUST_NO, OC.CHGER_BASE_ADDR
+		                , OC.CHGER_DTL_ADDR, OC.WD_GB, OC.ADD_PAY_COST
+		       ) Z
+		 WHERE Z.RNUM = 1
+	</select>
 </mapper>