Browse Source

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.front into develop

card007 4 years ago
parent
commit
b2b938359c

+ 11 - 3
src/main/java/com/style24/front/biz/dao/TsfCommonDao.java

@@ -1,13 +1,13 @@
 package com.style24.front.biz.dao;
 
-import com.style24.persistence.domain.SupplyCompany;
+import java.util.Collection;
+
 import org.springframework.stereotype.Repository;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.InflowHst;
 import com.style24.persistence.domain.Order;
-
-import java.util.Collection;
+import com.style24.persistence.domain.SupplyCompany;
 
 /**
  * 공통 Dao
@@ -46,6 +46,14 @@ public interface TsfCommonDao {
 	 */
 	String getAfLinkName(String afLinkCd);
 
+	/**
+	 * 유효한 웹제휴채널 여부 조회
+	 * @return Y/N
+	 * @author gagamel
+	 * @since 2021. 8. 31
+	 */
+	String getAvailableAfLinkYn(String afLinkCd);
+
 //	/**
 //	 * 기본답변문구내용 조회
 //	 *

+ 14 - 3
src/main/java/com/style24/front/biz/service/TsfCommonService.java

@@ -1,6 +1,7 @@
 package com.style24.front.biz.service;
 
-import com.style24.persistence.domain.SupplyCompany;
+import java.util.Collection;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -12,11 +13,10 @@ import com.style24.front.biz.dao.TsfCommonDao;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.InflowHst;
 import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.SupplyCompany;
 
 import lombok.extern.slf4j.Slf4j;
 
-import java.util.Collection;
-
 /**
  * 공통 Service
  *
@@ -45,6 +45,17 @@ public class TsfCommonService {
 //		return commonDao.getSiteName(siteCd);
 //	}
 
+	/**
+	 * 유효한 웹제휴링크코드 여부 조회
+	 * @param afLinkCd - 제휴링크코드
+	 * @return Y/N
+	 * @author gagamel
+	 * @date 2021. 08. 31
+	 */
+	public String getAvailableAfLinkYn(String afLinkCd) {
+		return commonDao.getAvailableAfLinkYn(afLinkCd);
+	}
+
 	/**
 	 * 유입경로이력(웹제휴채널) 생성
 	 * @param afLinkCd - 제휴링크코드

+ 76 - 2
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -1,6 +1,7 @@
 package com.style24.front.biz.web;
 
 import java.io.PrintWriter;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -13,6 +14,7 @@ import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
@@ -63,8 +65,8 @@ public class TsfPgController extends TsfBaseController {
 	 * @since 2021. 03. 05
 	 */
 	@ResponseBody
-	@RequestMapping(value = "/kcp/vBankEnd")
-	public ModelAndView vBankEnd(Payment param, HttpServletRequest request, HttpServletResponse response, Model model) throws Exception{
+	@RequestMapping(value = "/kcp/vBankEndBack")
+	public ModelAndView vBankEndBack(Payment param, HttpServletRequest request, HttpServletResponse response, Model model) throws Exception{
 		try {	request.setCharacterEncoding("euc-kr");	} catch(Exception e) {	}
 		PrintWriter out = response.getWriter();
 		String result = "0000";
@@ -125,6 +127,78 @@ public class TsfPgController extends TsfBaseController {
 		out.close();
 		return null;
 	}
+	
+	/**
+	 * 무통장입금 입금통보
+	 *
+	 * @param
+	 * @return
+	 * @author xodud1202
+	 * @since 2021. 03. 05
+	 */
+	@ResponseBody
+	@PostMapping(value = "/kcp/vBankEnd")
+	public ModelAndView vBankEnd(@RequestBody Payment param, HttpServletRequest request, HttpServletResponse response, Model model) throws Exception{
+		try {	request.setCharacterEncoding("euc-kr");	} catch(Exception e) {	}
+		PrintWriter out = response.getWriter();
+		String result = "0000";
+
+		try {
+			String opCd = param.getOp_cd();		// 13이 오면 입금이 잘못된 경우로 취소 노티가 온다고함. 13이 아닌 경우에만 진행해야할듯함.
+			String txCd = param.getTx_cd();		// 무통장 입금 통보는 TX00(PC), TX08(MOB). 아닐경우 처리 X
+			
+			if("13".equals(opCd) || !("TX00".equals(txCd) || "TX08".equals(txCd))) {
+				return null;
+			}
+
+			// 2021.03.15 jsh77b 무통장입금 결제완료 처리
+			Order order = new Order();
+			order.setOrdNo(Integer.parseInt(param.getOrder_no()));
+			order.setPgTid(param.getTno());
+			order.setCashAuthNo(param.getCash_a_no());
+			order.setCashTradeNo(param.getCash_no());
+			order.setCustNo(0);
+			order.setUpdNo(0);
+			coreOrderService.updateOrderInfoVBank(order);
+
+			// USAFE 보증보험 입금확인 송부
+			orderService.uSafeGuaranteeDepositCompleted(order);
+			
+			// 2021.06.18
+			GagaMap resultMap = coreOrderService.getOrderCompleteInfo(order);
+			Order orderInfo = (Order) resultMap.get("orderInfo");
+
+			// 2021.06.18 알림톡 이전 발송이력 조회
+			CustContactHst custContactHst = new CustContactHst();
+			custContactHst.setContactType(TscConstants.ContactType.BANK_DEPOSIT_INFO.value());
+			custContactHst.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value());
+			custContactHst.setContactMemo(String.valueOf(order.getOrdNo()));
+
+			int count = customerService.getGiftKakaoSendInfo(custContactHst);
+			
+			if (count < 1) {
+				if (StringUtils.isNotBlank(orderInfo.getOrdPhnno())) {
+					Integer userNo = orderInfo.getCustNo();
+					try {
+						orderInfo.setGoodsNm((String) resultMap.get("goodsNm"));
+						orderInfo.setGoodsCnt(String.valueOf(resultMap.get("goodsCnt")));
+						kakaotalkService.sendDepositComplete(orderInfo, userNo);
+					} catch (Exception e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+				}
+			}
+		} catch(Exception e) {
+			result = "9999";		// 실패. return 하지 말것.
+		}
+
+		// 결과 데이터 세팅 ("0000"은 성공, 그 외에는 실패. 실패시에 입금 결과 재통보)
+		out.print("<html><body><form><input type='hidden' name='result' value='" + result + "'></form></body></html>");
+		out.flush();
+		out.close();
+		return null;
+	}
 
 	/**
 	 * KCP 모바일 appoval 페이지

+ 31 - 7
src/main/java/com/style24/front/support/interceptor/TsfAflinkInterceptor.java

@@ -41,11 +41,33 @@ public class TsfAflinkInterceptor extends HandlerInterceptorAdapter {
 		String afLinkCd = params.getString("afLinkCd");
 
 		if (StringUtils.isNotBlank(afLinkCd)) {
-			if (!afLinkCd.equals(TsfSession.getAttribute("afLinkCd"))) {
-				TsfSession.setAttribute("afLinkCd", afLinkCd);
+			// 유효한 웹제휴채널코드 여부 조회
+			String isAvailAfLinkCdYn = commonService.getAvailableAfLinkYn(afLinkCd);
+			log.info("isAvailAfLinkCdYn: {}", isAvailAfLinkCdYn);
+
+			// 유효한 웹제휴채널코드이면
+			if (isAvailAfLinkCdYn.equals("Y")) {
+				if (!afLinkCd.equals(TsfSession.getAttribute("afLinkCd"))) {
+					TsfSession.setAttribute("afLinkCd", afLinkCd);
+				}
+			} else {
+				afLinkCd = "";
 			}
 		} else {
-			afLinkCd = "AF001"; // STYLE24
+			if (TsfSession.getAttribute("isApp").equals("true")) { // 앱이면
+				if (TsfSession.getAttribute("osType").equals("A")) {
+					afLinkCd = "AF016"; // AOS앱
+				} else if (TsfSession.getAttribute("osType").equals("I")) {
+					afLinkCd = "AF017"; // IOS앱
+				}
+			} else { // 웹이면
+				if (TsfSession.getFrontGb().equals("P")) {
+					afLinkCd = "AF006"; // PC웹
+				} else if (TsfSession.getFrontGb().equals("M")) {
+					afLinkCd = "AF015"; // 모바일웹
+				}
+			}
+
 			TsfSession.setAttribute("afLinkCd", afLinkCd);
 		}
 
@@ -55,10 +77,12 @@ public class TsfAflinkInterceptor extends HandlerInterceptorAdapter {
 		}
 
 		try {
-			InflowHst inflow = new InflowHst();
-			inflow.setAfLinkCd(afLinkCd);
-			inflow.setPageUrl(request.getRequestURL() + queryString);
-			commonService.createInflowHistory(inflow);
+			if (StringUtils.isNotBlank(afLinkCd)) {
+				InflowHst inflow = new InflowHst();
+				inflow.setAfLinkCd(afLinkCd);
+				inflow.setPageUrl(request.getRequestURL() + queryString);
+				commonService.createInflowHistory(inflow);
+			}
 		} catch (Exception e) {
 			// Do nothing
 		}

+ 9 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCommon.xml

@@ -52,6 +52,15 @@
 		WHERE  AF_LINK_CD = #{afLinkCd}
 	</select>
 	
+	<!-- 유효한 웹제휴채널 여부 조회 -->
+	<select id="getAvailableAfLinkYn" parameterType="String" resultType="String">
+		/* TsfCommon.getAvailableAfLinkYn */
+		SELECT CASE WHEN COUNT(*) > 0 THEN 'Y' ELSE 'N' END
+		FROM   TB_AF_LINK
+		WHERE  AF_LINK_CD = #{afLinkCd}
+		AND    USE_YN = 'Y'
+	</select>
+	
 	<!-- 주문배송지정보수정 -->
 	<update id="updateDeliverAddr" parameterType="Order">
 		/* TsfCommon.updateDeliverAddr */

+ 2 - 0
src/main/webapp/WEB-INF/views/mob/order/OrderPaymentInfoMob.html

@@ -62,6 +62,7 @@
 										</span>
 									</label>
 								</li>
+								<!-- 
 								<th:block th:if="${order.giftPackYn} == 'N'">
 									<li>
 										<input type="radio" name="rdi-paynormal" id="payVirtualBank" class="KCP" value="KCP|G014_20"> 
@@ -70,6 +71,7 @@
 										</label>
 									</li>
 								</th:block>
+								 -->
 								<li>
 									<input type="radio" name="rdi-paynormal" id="payPayco" class="PAYCO" value="PAYCO|G014_30"> 
 									<label for="payPayco">

+ 3 - 0
src/main/webapp/WEB-INF/views/web/order/OrderPaymentInfoWeb.html

@@ -57,6 +57,7 @@
 							</span>
 						</label>
 					</li>
+					<1--
 					<li>
 						<input type="radio" name="rdi-paynormal" id="payPayco" class="PAYCO" value="PAYCO|G014_30"> 
 						<label for="payPayco">
@@ -70,10 +71,12 @@
 						<input type="radio" name="rdi-paynormal" id="payRealBank" class="KCP" value="KCP|G014_10"> 
 						<label for="payRealBank"><span class="payType">실시간계좌이체</span></label>
 					</li>
+					<!-- 
 					<li>
 						<input type="radio" name="rdi-paynormal" id="payVirtualBank" class="KCP" value="KCP|G014_20"> 
 						<label for="payVirtualBank"><span class="payType">무통장입금</span></label>
 					</li>
+					 -->
 				</ul>
 			</div>
 		</div>