Prechádzať zdrojové kódy

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

xodud lee 5 rokov pred
rodič
commit
56faf6d43a

+ 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

@@ -1013,4 +1013,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
+			}
+		}
+	}
 }

+ 37 - 0
src/main/java/com/style24/core/biz/service/TscMailService.java

@@ -8,6 +8,8 @@ import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.CustContactHst;
 import com.style24.persistence.domain.CustCoupon;
 import com.style24.persistence.domain.Customer;
+import com.style24.persistence.domain.Point;
+
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -426,7 +428,42 @@ public class TscMailService {
 			// Do nothing
 		}
 	}
+	
+	/**
+	 * 포인트 만료예정 안내(30일)
+	 *
+	 * @param customer - 고객 정보
+	 * @param point - 포인트정보
+	 * @param senderNo - 보낸
+	 * @author sowon
+	 * @since 2021. 06. 08
+	 */
+	@Transactional("shopTxnManager")
+	public void sendPointExpectNotify(Point point, Integer senderNo) {
+
+		GagaMap replaceInfo = new GagaMap();
+		replaceInfo.setInt("custNo", point.getCustNo());
+		replaceInfo.setString("custNm", point.getCustNm());
+		replaceInfo.setInt("rmPntAmt", point.getRmPntAmt());
+		replaceInfo.setString("expBeDt", point.getExpBeDt());
+		replaceInfo.setString("today", point.getToday());
 
+		netpathyMailSender.send(NetpathyMailSender.MailAnswerSq.POINT_EXTNC_EXPECT.value(), point.getEmail(), replaceInfo);
 
+		try {
+			// 고객접촉이력 정보
+			CustContactHst custContactHst = new CustContactHst();
+			custContactHst.setContactType(TscConstants.ContactType.COUPON_EXTNC_EXPECT.value()); // 접촉유형:임시비밀번호발급(공통코드G054)
+			custContactHst.setContactMethod(TscConstants.ContactMethod.EMAIL.value()); // 접촉방법:알림톡+문자(공통코드G055)
+			custContactHst.setContactContents("포인트소멸예정");
+			custContactHst.setReceiverNo(point.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");				// 재입고 알림
 
 

+ 6 - 0
src/main/java/com/style24/persistence/domain/Point.java

@@ -17,6 +17,7 @@ public class Point extends TscBaseDomain {
 	private Integer custPntSq;	// 고객포인트일련번호
 	private Integer custNo;		// 고객번호
 	private String custNm;		// 고객이름
+	private String email;		// 이메일
 	private String cellPhnno;	// 휴대전화번호(탈퇴 시 NULL로 처리)
 	private String expBeDt;		// 만료예정일시
 	private String expCmpDt;	// 만료완료일시
@@ -35,6 +36,7 @@ public class Point extends TscBaseDomain {
 	private String pntUploadStat;	// 포인트반영상태(공통코드G280)
 	private String pntUploadDt;		// 포인트반영일시
 	private int pntAmt;				// 포인트금액(+, - 금액으로 표시)
+	private String today;			// 현재
 
 	private int expirePntAmt;			// 소멸포인트
 	private int expectedPntAmt;			// 적립예정포인트
@@ -56,4 +58,8 @@ public class Point extends TscBaseDomain {
 		this.cellPhnno = CryptoUtils.decryptAES(this.cellPhnno);
 		return this.cellPhnno;
 	}
+	public String getEmail() {
+		this.email = CryptoUtils.decryptAES(this.email);
+		return this.email;
+	}
 }

+ 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>