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

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

# Conflicts:
#	src/main/java/com/style24/front/biz/web/TsfMypageController.java
card007 5 лет назад
Родитель
Сommit
4515840be2
22 измененных файлов с 603 добавлено и 123 удалено
  1. 10 4
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  2. 2 0
      src/main/java/com/style24/front/biz/service/TsfCouponService.java
  3. 143 0
      src/main/java/com/style24/front/biz/service/TsfCustomerService.java
  4. 1 0
      src/main/java/com/style24/front/biz/service/TsfSocialService.java
  5. 30 3
      src/main/java/com/style24/front/biz/thirdparty/Yes24Login.java
  6. 34 40
      src/main/java/com/style24/front/biz/web/TsfIndexController.java
  7. 70 60
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  8. 47 0
      src/main/java/com/style24/front/support/config/TsfMybatisWmsConfig.java
  9. 6 0
      src/main/java/com/style24/persistence/domain/Social.java
  10. 1 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml
  11. 7 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfSocial.xml
  12. 24 0
      src/main/resources/persistence/mybatis-wms-config.xml
  13. 45 0
      src/main/webapp/WEB-INF/views/web/Yes24CallBackFormWeb.html
  14. 53 3
      src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html
  15. 1 1
      src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html
  16. 65 0
      src/main/webapp/WEB-INF/views/web/common/fragments/MktScriptsWeb.html
  17. 1 1
      src/main/webapp/WEB-INF/views/web/common/layout/BrandLayoutWeb.html
  18. 1 1
      src/main/webapp/WEB-INF/views/web/common/layout/CallcenterLayoutWeb.html
  19. 1 1
      src/main/webapp/WEB-INF/views/web/common/layout/DefaultLayoutWeb.html
  20. 1 2
      src/main/webapp/WEB-INF/views/web/common/layout/MypageLayoutWeb.html
  21. 58 3
      src/main/webapp/WEB-INF/views/web/mypage/MypageCustModifyFormWeb.html
  22. 2 2
      src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

+ 10 - 4
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -289,7 +289,11 @@ public class TsfCartService {
 
 		// 로그인 체크
 		if(TsfSession.isLogin()) {
+			log.info("CHECK LOGIN TRUE ::: {}", TsfSession.getInfo().getCustNo());
 			order.setCustNo(TsfSession.getInfo().getCustNo());
+		} else {
+			log.info("CHECK LOGIN FALSE");
+			order.setCustNo(0);
 		}
 		order.setFrontGb(TsfSession.getFrontGb());
 		order.setJsessionId(TscSession.getSessionId());
@@ -333,11 +337,13 @@ public class TsfCartService {
 			}
 		}
 
-		// 장바구니 업체별 배송비 계산
-		setCartListDelvFeeInfo(cartGoodsList);
+		if(cartGoodsList != null && cartGoodsList.size() > 0) {
+			// 장바구니 업체별 배송비 계산
+			setCartListDelvFeeInfo(cartGoodsList);
 
-		// 자사 / 입점업체 리스트 분리
-		order = getCartDelvGoodsCntList(cartGoodsList);
+			// 자사 / 입점업체 리스트 분리
+			order = getCartDelvGoodsCntList(cartGoodsList);
+		}
 
 		// 총계 금액 계산
 		setCartListTotAmtInfo(cartGoodsList, order);

+ 2 - 0
src/main/java/com/style24/front/biz/service/TsfCouponService.java

@@ -72,6 +72,8 @@ public class TsfCouponService {
 			param.setCustNo(login.getCustNo());
 			param.setRegNo(login.getCustNo());
 			param.setUpdNo(login.getCustNo());
+		} else {
+			throw new IllegalStateException("로그인을 해야합니다.");
 		}
 
 		param.setFrontGb(TsfSession.getFrontGb());

+ 143 - 0
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -3,6 +3,7 @@ package com.style24.front.biz.service;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.security.GagaPasswordEncoder;
+import com.kcp.J_PP_CLI_N;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.session.TscSession;
@@ -18,12 +19,18 @@ import com.style24.persistence.domain.WishList;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -56,6 +63,8 @@ public class TsfCustomerService {
 	@Autowired
 	private ObjectMapper objectMapper;
 
+	@Autowired
+	private Environment env;
 
 	/**
 	 * 고객아이디 찾기
@@ -776,4 +785,138 @@ public class TsfCustomerService {
 
 		return result;
 	}
+
+	/**
+	 * KCP 계좌인증 처리
+	 *
+	 * @param request
+	 * @result GagaMap
+	 * @author jsshin
+	 * @since 2021. 03. 17
+	 */
+	public GagaMap checkAccount(HttpServletRequest request) {
+		try {
+			request.setCharacterEncoding("euc-kr");
+		} catch (Exception e) {
+			e.getMessage();
+		}
+		GagaMap resultMap = new GagaMap();
+		J_PP_CLI_N c_PayPlus = new J_PP_CLI_N();
+		// c_PayPlus.mf_init( "", env.getProperty("pg.kcp.gw.url"), env.getProperty("pg.kcp.gw.port"), 0, env.getProperty("pg.kcp.log.dir") );
+		c_PayPlus.mf_init( "", "paygw.kcp.co.kr", "8090", 0, env.getProperty("pg.kcp.log.dir") );
+		c_PayPlus.mf_init_set();
+//		String siteCd = env.getProperty("pg.kcp.site.cd");
+//		String siteKey = env.getProperty("pg.kcp.site.key");
+		String kcpSiteCd = "U3476";
+		String kcpsiteKey = "4aVa--.Xz8Fc78nwYPsrmmY__";
+
+		String custIp = request.getRemoteAddr();
+		String tranCd = "00100000";
+		String ordNo = "0";
+		String bankCode = "04";//map.getString("bankList");   //"04";
+		String accountNo = "27560104388848";//map.getString("accountNumber"); //"27560104388848";
+
+
+		int payx_data_set;
+		int common_data_set;
+
+		payx_data_set = c_PayPlus.mf_add_set("payx_data");
+		common_data_set = c_PayPlus.mf_add_set("common");
+
+		c_PayPlus.mf_set_us(common_data_set, "amount", "0");
+		c_PayPlus.mf_set_us(common_data_set, "cust_ip", custIp);
+		c_PayPlus.mf_set_us(common_data_set, "escw_mod", "N");
+
+		c_PayPlus.mf_add_rs(payx_data_set, common_data_set);
+
+		// 주문 정보
+		int ordr_data_set = c_PayPlus.mf_add_set("ordr_data");
+
+		c_PayPlus.mf_set_us(ordr_data_set, "ordr_idxx", ordNo);
+
+		// 계좌 정보
+		int acnt_data_set = c_PayPlus.mf_add_set("bank");
+		log.info("accountHolder {}" , request.getParameter("accountHolder"));
+		c_PayPlus.mf_set_us(acnt_data_set, "bk_owner_nm", request.getParameter("accountHolder"));				// 예금주명
+		c_PayPlus.mf_set_us(acnt_data_set, "bk_txtype", "74200000");	    // 지불 타입 (계좌 인증)
+		c_PayPlus.mf_set_us(acnt_data_set, "bk_code", bankCode);					// 은행 코드
+		c_PayPlus.mf_set_us(acnt_data_set, "bk_account_no", accountNo);			// 발급 계좌
+		c_PayPlus.mf_add_rs(payx_data_set, acnt_data_set);
+
+		c_PayPlus.mf_do_tx(kcpSiteCd, kcpsiteKey, tranCd, custIp, ordNo, "3", "0" );
+
+		log.info("recCd =====> {}", c_PayPlus.m_res_cd);
+		log.info("resMsg =====> {}", c_PayPlus.m_res_msg);
+		try {
+			log.info("resMsg 1. kr =====> {}", euckrToUtf8(c_PayPlus.m_res_msg));
+			log.info("resMsg 2. kr =====> {}", euckrToUtf82(c_PayPlus.m_res_msg));
+			log.info("resMsg 3. kr =====> {}", utf83(c_PayPlus.m_res_msg));
+			log.info("resMsg 4. kr =====> {}", new String(c_PayPlus.m_res_msg.getBytes("utf-8"), "utf-8"));
+
+		} catch (Exception e) {
+			log.error(e.getMessage());
+		}
+
+		log.info("res_en_msg =====> {}", c_PayPlus.getRecvMsgOfKey("res_en_msg"));
+		resultMap.set("ResMsg", c_PayPlus.getRecvMsgOfKey("res_en_msg"));				// 결과 메시지
+
+		if ("0000".equals(c_PayPlus.m_res_cd)) {
+			resultMap.setBoolean("isPossible", true);
+			log.info("tno ====> {}", c_PayPlus.mf_get_res("tno"));				// KCP 거래 고유 번호
+			log.info("app_time ====> {}", c_PayPlus.mf_get_res("app_time"));
+		} else {
+			resultMap.setBoolean("isPossible", false);
+		}
+
+		return resultMap;
+	}
+
+	private String euckrToUtf8(String euc_kr_str) throws UnsupportedEncodingException {
+		//euc_kr_str - euc-kr 문자열
+
+		CharBuffer cbuffer = CharBuffer.wrap((new String(euc_kr_str.getBytes(Charset.forName("EUC-KR")), "EUC-KR")).toCharArray());
+
+		Charset utf8charset = StandardCharsets.UTF_8;
+
+		ByteBuffer bbuffer = utf8charset.encode(cbuffer);
+
+
+
+		//변환된 UTF-8 문자열
+
+		return  new String(bbuffer.array());
+	}
+
+	private String utf8ToEuckr(String euc_kr_str) throws UnsupportedEncodingException {
+		//euc_kr_str - euc-kr 문자열
+
+		CharBuffer cbuffer = CharBuffer.wrap((new String(euc_kr_str.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8)).toCharArray());
+
+		Charset utf8charset = Charset.forName("EUC-KR");
+
+		ByteBuffer bbuffer = utf8charset.encode(cbuffer);
+
+
+
+		//변환된 UTF-8 문자열
+
+		return  new String(bbuffer.array());
+	}
+
+	private String utf8ToEuckr2(String value) throws UnsupportedEncodingException {
+		byte[] eucKr = value.getBytes("EUC-KR");
+		return eucKr.toString();
+	}
+
+	private String euckrToUtf82(String value) throws UnsupportedEncodingException {
+		byte[] utf8 = value.getBytes("UTF-8");
+		return utf8.toString();
+	}
+
+	private String utf83(String value) throws UnsupportedEncodingException {
+		CharBuffer cbuffer = CharBuffer.wrap((new String(value.getBytes("EUC-KR"), "EUC-KR")).toCharArray());
+		Charset utf8charset = Charset.forName("UTF-8");
+		ByteBuffer bbuffer = utf8charset.encode(cbuffer);
+		return new String(bbuffer.array());
+	}
 }

+ 1 - 0
src/main/java/com/style24/front/biz/service/TsfSocialService.java

@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.style24.front.biz.dao.TsfSocialDao;
+import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Social;
 
 import lombok.extern.slf4j.Slf4j;

+ 30 - 3
src/main/java/com/style24/front/biz/thirdparty/Yes24Login.java

@@ -2,6 +2,7 @@ package com.style24.front.biz.thirdparty;
 
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.util.GagaFileUtil;
+import com.style24.core.support.util.CryptoUtils;
 import com.style24.front.support.security.session.TsfSession;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +30,7 @@ public class Yes24Login {
 	public static final String PROTOCOL = "http://";
 
 	/**
-	 * YES24 로그인 
+	 * YES24 로그인 화면
 	 * @param state - 콜백 시 해당 값으로 비교 및 모바일을 redirect 값이 있음
 	 * @return String - 호출 url정보
 	 * @author jsshin
@@ -38,19 +39,45 @@ public class Yes24Login {
 	public String getAuthorizeUrl(String state) {
 		String authorizeUrl = "https://www.yes24.com/Templates/FTLoginPartner.aspx";
 		String callBackUrl = "/signin/yes24LoginCallback";
+		String id = TsfSession.getFrontGb().equals("P") ? "PID" : "MID";
 		StringBuilder apiUrlBuilder = new StringBuilder();
 		String redirectUri = GagaFileUtil.getConcatenationPath(PROTOCOL + TsfSession.getHttpServletRequest().getServerName(), callBackUrl);
 		apiUrlBuilder.append(authorizeUrl)
-				.append("?PID=101582")
+				.append("?"+id+"=101582")
 				.append("&ReturnURL=")
 				.append(redirectUri);
 		log.info("apiUrlBuilder ===> {}", apiUrlBuilder.toString());
 		return apiUrlBuilder.toString();
 	}
 
-	public GagaMap getAccessInfo(String ci) {
+	/**
+	 * YES24 정보
+	 * @param inpin - yes24 전달 해준 암호화된 : "요청날짜|CI"
+	 * @return String - 호출 url정보
+	 * @author jsshin
+	 * @since 2021. 03. 03
+	 */
+	public GagaMap getAccessInfo(String inpin) {
 		GagaMap result = new GagaMap();
+		//1. ipin 복호화
+		String decryptIpin = CryptoUtils.decryptAES(inpin);
+		log.info("decryptIpin {}", decryptIpin);
+
+		//2. ipin 값에서 ci 값 분리
+		String decryptIpinValues[] = decryptIpin.split("|");
+		log.info("decryptIpinValues.length {}", decryptIpinValues.length);
+		log.info("decryptIpinValues0 {}", decryptIpinValues[0]);
+		log.info("decryptIpinValues1 {}", decryptIpinValues[1]);
+
+		//3. ci값 추출 후 통신
+		String encryptCi = CryptoUtils.encryptAES(decryptIpinValues[0]);
+
+
 
 		return result;
 	}
+
+
+
+
 }

+ 34 - 40
src/main/java/com/style24/front/biz/web/TsfIndexController.java

@@ -1,24 +1,18 @@
 package com.style24.front.biz.web;
 
-import java.io.IOException;
-import java.math.BigInteger;
-import java.security.SecureRandom;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gagaframework.web.parameter.GagaMap;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.style24.core.support.env.TscConstants;
+import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCustomerService;
 import com.style24.front.biz.thirdparty.KaKaoLogin;
 import com.style24.front.biz.thirdparty.NaverLogin;
 import com.style24.front.biz.thirdparty.Yes24Login;
+import com.style24.front.support.controller.TsfBaseController;
+import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.CustSnsInfo;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -29,13 +23,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.servlet.ModelAndView;
 
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.support.controller.TsfBaseController;
-import com.style24.front.support.security.session.TsfSession;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.rest.server.GagaResponseStatus;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.math.BigInteger;
+import java.security.SecureRandom;
 
 /**
  * Index Controller
@@ -334,34 +328,34 @@ public class TsfIndexController extends TsfBaseController {
 		GagaMap userInfo = new GagaMap();
 
 		if (StringUtils.isNotBlank(ipin)) {
-			log.info(ipin);
+
 		}
 
 
 		GagaMap resultMap = new GagaMap();
 
 		// SNS 로그인 성공시 정보 세션 저장
-		if (isSnsLoing) {
-			CustSnsInfo custSnsInfo = objectMapper.convertValue(userInfo, CustSnsInfo.class);
-			log.info("custSnsInfo ==> {}", custSnsInfo.toString());
-
-			//SNS 로그인 처리
-			resultMap = customerService.customerSnsProcessing(custSnsInfo);
-			resultMap.setString("snsId", custSnsInfo.getSnsId());
-			resultMap.setString("snsType", custSnsInfo.getSnsType());
-
-			String custStat = resultMap.getString("custStat");
-
-			// 신규가입 이면 바로 로그인 처리
-			if ("NEW_CUST".equals(custStat)) {
-				customerService.getLogin(Integer.parseInt(resultMap.getString("custNo")), request);
-			}
-
-			// 가입 폼으로 이동
-			if ("EMPTY_PHONE_CUST".equals(custStat)) {
-				session.setAttribute("custSnsInfo", custSnsInfo);
-			}
-		}
+//		if (isSnsLoing) {
+//			CustSnsInfo custSnsInfo = objectMapper.convertValue(userInfo, CustSnsInfo.class);
+//			log.info("custSnsInfo ==> {}", custSnsInfo.toString());
+//
+//			//SNS 로그인 처리
+//			resultMap = customerService.customerSnsProcessing(custSnsInfo);
+//			resultMap.setString("snsId", custSnsInfo.getSnsId());
+//			resultMap.setString("snsType", custSnsInfo.getSnsType());
+//
+//			String custStat = resultMap.getString("custStat");
+//
+//			// 신규가입 이면 바로 로그인 처리
+//			if ("NEW_CUST".equals(custStat)) {
+//				customerService.getLogin(Integer.parseInt(resultMap.getString("custNo")), request);
+//			}
+//
+//			// 가입 폼으로 이동
+//			if ("EMPTY_PHONE_CUST".equals(custStat)) {
+//				session.setAttribute("custSnsInfo", custSnsInfo);
+//			}
+//		}
 		mav.addObject("resultMap", resultMap);
 		mav.setViewName(super.getDeviceViewName("SnsCallBackForm"));
 

+ 70 - 60
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -4,6 +4,9 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -16,9 +19,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.rest.server.GagaResponse;
-import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.style24.core.biz.service.TscCouponService;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.biz.service.TscKakaoPayService;
@@ -49,6 +49,10 @@ import com.style24.persistence.domain.WishList;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.rest.server.GagaResponse;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
+
 /**
  * 마이페이지 Controller
  * 
@@ -74,7 +78,7 @@ public class TsfMypageController extends TsfBaseController {
 
 	@Autowired
 	private TscOrderService coreOrderService;
-	
+
 	@Autowired
 	private TsfOrderChangeService orderChangeService;
 
@@ -101,13 +105,13 @@ public class TsfMypageController extends TsfBaseController {
 
 	@Autowired
 	private TsfRendererService rendererService;
-	
+
 	@Autowired
 	private TscKakaoPayService kakaoPayService;
 
 	@Autowired
 	private NiceCertify niceCertify;
-	
+
 	@Autowired
 	private TscCouponService coreCouponService;
 
@@ -125,7 +129,7 @@ public class TsfMypageController extends TsfBaseController {
 		if (order == null) {
 			order = new Order();
 		}
-		
+
 		// 고객번호 설정
 		int custNo = TsfSession.getInfo().getCustNo();
 		order.setCustNo(custNo);
@@ -139,7 +143,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 쿠폰정보 조회
 		mav.addObject("couponCnt", coreOrderService.getCouponInfo(order));
-		
+
 		order.setExpiredSoon("Y");
 		mav.addObject("expiredSoonCouponCnt", coreOrderService.getCouponInfo(order));
 
@@ -187,11 +191,10 @@ public class TsfMypageController extends TsfBaseController {
 		// 주문번호 설정
 		mav.addObject("ordNo", ordNo);
 
-		
 		Order order = new Order();
 		order.setCustNo(custNo);
 		order.setOrdNo(ordNo);
-		
+
 		// 주문목록 조회
 		Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
 
@@ -210,7 +213,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 주문 결제정보 조회
 		mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
-		
+
 		// 주문 배송지 정보 조회
 		mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
 
@@ -278,7 +281,7 @@ public class TsfMypageController extends TsfBaseController {
 		// 고객번호 설정
 		int custNo = TsfSession.getInfo().getCustNo();
 		order.setUpdNo(custNo);
-		
+
 		// 주문내역 삭제 처리
 		int chk = orderService.updateOrderDisplayYn(order);
 
@@ -316,10 +319,10 @@ public class TsfMypageController extends TsfBaseController {
 		order.setCustNo(custNo);
 		order.setRegNo(custNo);
 		order.setUpdNo(custNo);
-		
+
 		// 구매확정 처리
 		result = coreOrderService.decideOrder(order);
-		
+
 		return result;
 	}
 
@@ -335,7 +338,7 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public ModelAndView exchangeForm(Order order) {
 		ModelAndView mav = new ModelAndView();
-		
+
 		// 주문번호 설정
 		mav.addObject("ordNo", order.getOrdNo());
 
@@ -353,7 +356,6 @@ public class TsfMypageController extends TsfBaseController {
 
 		mav.addObject("customerInfo", customer);
 
-
 		// 주문목록 조회
 		Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
 
@@ -366,12 +368,12 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 주문 배송지 정보 조회
 		mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
-		
+
 		// 교환 사유 목록 조회
 		mav.addObject("exchangeReason", rendererService.getCommonCodeList("G689", "Y"));
-		
+
 		mav.setViewName(super.getDeviceViewName("/mypage/MypageExchangeForm"));
-		
+
 		return mav;
 	}
 
@@ -400,9 +402,9 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 등급쿠폰 다운 처리
 		int count = couponService.createCustGradeAllCoupon(coupon);
-		
+
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
-		
+
 		if (count == 0) {
 			result.set("message", message.getMessage("COUPON_0002"));
 		} else {
@@ -485,7 +487,6 @@ public class TsfMypageController extends TsfBaseController {
 
 		mav.addObject("customerInfo", customer);
 
-
 		// 반품 가능 리스트 조회
 		mav.addObject("returnList", orderChangeService.getCancelListForMypage(order));
 
@@ -508,7 +509,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 STYLE24 포인트화면
 	 *
@@ -527,28 +528,27 @@ public class TsfMypageController extends TsfBaseController {
 		map.setString("bankNm", "김지철");
 		map.setString("accountNo", "110500288201");
 		map.setString("bankCd", "88");
-		coreOrderService.checkAccount(map);
 		// 테스트용 (삭제예정)
-		
+
 		int custNo = TsfSession.getInfo().getCustNo();
 		point.setCustNo(custNo);
 		// 잔여포인트
-		mav.addObject("pointInfo", pointService.getUsablePointInfo(point));		
+		mav.addObject("pointInfo", pointService.getUsablePointInfo(point));
 		// 적립예정포인트 expectedPntAmt
 		mav.addObject("expectedpointInfo", pointService.getExpectedPointInfo(point));
 		// 한달 이내 소멸 예정 포인트
 		mav.addObject("extinctpointInfo", pointService.getExtinctPointInfo(point));
 		// 전체내역 조회
-		mav.addObject("allPointList",pointService.getAllPointList(point));
+		mav.addObject("allPointList", pointService.getAllPointList(point));
 		// 적립내역 조회
-		mav.addObject("accumulatePointList",pointService.getAccumulatePointList(point));
+		mav.addObject("accumulatePointList", pointService.getAccumulatePointList(point));
 		// 사용내역 조회
-		mav.addObject("usePointList",pointService.getUsePointList(point));
-		
+		mav.addObject("usePointList", pointService.getUsePointList(point));
+
 		mav.setViewName(super.getDeviceViewName("mypage/MypagePointForm"));
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 STYLE24 포인트 전체,적립,사용내역
 	 *
@@ -561,17 +561,17 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getAllPointList(@RequestBody Point point) {
 		GagaMap result = new GagaMap();
-		
+
 		int custNo = TsfSession.getInfo().getCustNo();
 		point.setCustNo(custNo);
-		
+
 		// 전체내역 조회
-		result.set("allPointList",pointService.getAllPointList(point));
+		result.set("allPointList", pointService.getAllPointList(point));
 		// 적립내역 조회
-		result.set("accumulatePointList",pointService.getAccumulatePointList(point));
+		result.set("accumulatePointList", pointService.getAccumulatePointList(point));
 		// 사용내역 조회
-		result.set("usePointList",pointService.getUsePointList(point));
-		
+		result.set("usePointList", pointService.getUsePointList(point));
+
 		return result;
 	}
 
@@ -627,8 +627,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		return result;
 	}
-	
-	
+
 	/* 김소원 상품권 쿠폰 시작 */
 	/**
 	 * 마이페이지 상품권화면
@@ -646,7 +645,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 상품권 사용 리스트
 	 *
@@ -658,10 +657,10 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getGiftcardUseList(@RequestBody GiftCard giftcard) {
 		GagaMap result = new GagaMap();
-		result.set("giftcardUseList",giftcardService.getGiftcardUseList(giftcard));
+		result.set("giftcardUseList", giftcardService.getGiftcardUseList(giftcard));
 		return result;
 	}
-	
+
 	/**
 	 * 마이페이지 상품권 보유 리스트
 	 *
@@ -673,7 +672,7 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getGiftcardOwnList(@RequestBody GiftCard giftcard) {
 		GagaMap result = new GagaMap();
-		result.set("giftcardOwnList",giftcardService.getGiftcardOwnList(giftcard));
+		result.set("giftcardOwnList", giftcardService.getGiftcardOwnList(giftcard));
 		return result;
 	}
 
@@ -691,7 +690,7 @@ public class TsfMypageController extends TsfBaseController {
 		giftcardService.getGiftcardUseConfirm(giftcard);
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
-	
+
 	/**
 	 * 마이페이지 쿠폰화면
 	 *
@@ -702,13 +701,13 @@ public class TsfMypageController extends TsfBaseController {
 	@GetMapping("/coupon/form")
 	public ModelAndView mypageCouponForm(Coupon coupon) {
 		ModelAndView mav = new ModelAndView();
-		mav.addObject("couponList",couponService.getMypageCouponList(coupon));
-		mav.addObject("couponInfo",couponService.getMypageCouponInfo(coupon));
+		mav.addObject("couponList", couponService.getMypageCouponList(coupon));
+		mav.addObject("couponInfo", couponService.getMypageCouponInfo(coupon));
 		mav.setViewName(super.getDeviceViewName("mypage/MypageCouponForm"));
-		
+
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 쿠폰 상세보기 팝업
 	 *
@@ -716,10 +715,10 @@ public class TsfMypageController extends TsfBaseController {
 	 * @author sowon	
 	 * @since 2021. 03. 17
 	 */
-	@GetMapping(value="/coupon/detailPop")
+	@GetMapping(value = "/coupon/detailPop")
 	public ModelAndView mypageCouponDetailPop(@RequestParam(value = "cpnId") int cpnId) {
 		ModelAndView mav = new ModelAndView();
-		
+
 		// 쿠폰 - 기본정보
 		mav.addObject("couponDetailInfo", couponService.getCouponDetailInfo(cpnId));
 		// 쿠폰적용대상 - 공급업체 조회
@@ -736,9 +735,6 @@ public class TsfMypageController extends TsfBaseController {
 		return mav;
 	}
 
-
-
-
 	/*신주승 시작*/
 
 	/**
@@ -772,7 +768,6 @@ public class TsfMypageController extends TsfBaseController {
 		return result;
 	}
 
-
 	/**
 	 * 마이페이지 - 회원정보수정 화면
 	 *
@@ -782,16 +777,16 @@ public class TsfMypageController extends TsfBaseController {
 	 * @since 2021. 03. 15
 	 */
 	@GetMapping("/customer/modify/form")
-	public ModelAndView getCustomerModifyForm(@RequestParam(required = false)String confirmYn) {
+	public ModelAndView getCustomerModifyForm(@RequestParam(required = false) String confirmYn) {
 		ModelAndView mav = new ModelAndView();
-		String referer = StringUtils.defaultIfBlank(TsfSession.getHttpServletRequest().getHeader("referer"),"");
+		String referer = StringUtils.defaultIfBlank(TsfSession.getHttpServletRequest().getHeader("referer"), "");
 		boolean redirect = false;
 
-		if(StringUtils.isBlank(referer)) {
+		if (StringUtils.isBlank(referer)) {
 			redirect = true;
-		} else if(!referer.contains("/mypage/customer/confirm/form")) {
+		} else if (!referer.contains("/mypage/customer/confirm/form")) {
 			redirect = true;
-		} else if(!"Y".equals(confirmYn)) {
+		} else if (!"Y".equals(confirmYn)) {
 			redirect = true;
 		}
 
@@ -800,7 +795,7 @@ public class TsfMypageController extends TsfBaseController {
 			return mav;
 		}
 
-		mav.addObject("bankList", rendererService.getCommonCodeList("G050", "Y"));
+		mav.addObject("bankList", rendererService.getCommonCodeList("G940", "Y"));
 		mav.addObject("genderGbList", rendererService.getCommonCodeList("G007", "Y"));
 
 		mav.setViewName(super.getDeviceViewName("/mypage/MypageCustModifyForm"));
@@ -840,5 +835,20 @@ public class TsfMypageController extends TsfBaseController {
 		customer.setBirthYmd(authInfo.getString("sBirthDate"));
 		return customerService.updateCustomerAuth(customer);
 	}
+
+	/**
+	 * 마이페이지 - 계좌인증
+	 *
+	 * @return GagaMap - 결과
+	 * @author jsshin
+	 * @since 2021. 03. 16
+	 */
+	@RequestMapping("/account/check")
+	@ResponseBody
+	public GagaMap getAccountCheck(HttpServletRequest request, HttpServletResponse response) throws Exception {
+		log.info("request2 accountHolder {}", request.getParameter("accountHolder"));
+		GagaMap result = customerService.checkAccount(request);
+		return result;
+	}
 	/*신주승 끝*/
 }

+ 47 - 0
src/main/java/com/style24/front/support/config/TsfMybatisWmsConfig.java

@@ -0,0 +1,47 @@
+package com.style24.front.support.config;
+
+import com.style24.core.support.annotation.WmsDs;
+import com.style24.core.support.env.TscConstants;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.sql.DataSource;
+
+/**
+ * wmsDs용 Mybatis Configuration
+ * 
+ * @author gagamel
+ * @since 2020. 11. 26
+ */
+@Configuration
+@MapperScan(basePackages = TscConstants.BASE_PACKAGE, annotationClass = WmsDs.class, sqlSessionFactoryRef = "wmsSqlSessionFactory")
+public class TsfMybatisWmsConfig {
+
+	@Autowired
+	private ApplicationContext applicationContext;
+
+	@Bean(name = "wmsSqlSessionFactory")
+	public SqlSessionFactory wmsSqlSessionFactory(@Qualifier("wmsDataSource") DataSource dataSource) throws Exception {
+		SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+
+		sessionFactoryBean.setDataSource(dataSource);
+		sessionFactoryBean.setTypeAliasesPackage(TscConstants.DOMAIN_PACKAGE);
+		sessionFactoryBean.setConfigLocation(applicationContext.getResource("classpath:persistence/mybatis-wms-config.xml"));
+		sessionFactoryBean.setMapperLocations(applicationContext.getResources(TscConstants.MAPPER_LOCATION_PATH + "/shop/*.xml"));
+
+		return sessionFactoryBean.getObject();
+	}
+
+	@Bean(name = "wmsSqlSessionTemplate")
+	public SqlSessionTemplate wmsSqlSessionTemplate(@Qualifier("wmsSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
+		return new SqlSessionTemplate(sqlSessionFactory);
+	}
+
+}

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

@@ -60,6 +60,9 @@ public class Social extends TscBaseDomain{
 		private String goodsTnm;	//상품타이틀
 		private int stockQtySum;	//상품 재고
 		
+		// 고객
+		private Integer custNo;		//고객번호
+		
 		// 브랜드
 		private String brandKnm;	//브랜드이름(한글)
 		private String brandEnm;	//브랜드이름(영어)
@@ -70,6 +73,9 @@ public class Social extends TscBaseDomain{
 		private String stDate;	// 시작일시
 		private String edDate;	// 종료일시
 		
+		// wish
+		private String wishYn;	// 위시리스트 등록 여부
+		
 		
 		// Pagination
 		private TscPageRequest pageable;

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -500,7 +500,7 @@
 			 , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.CART_DTL_SQ) AS OPT_CD1
 			 , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.CART_DTL_SQ) AS OPT_CD2
 			 , GROUP_CONCAT(Z.ITEM_QTY ORDER BY Z.CART_DTL_SQ) AS ITEM_QTYR
-			 , (SELECT COUNT(1) CNT FROM TB_WISHLIST WHERE CUST_NO = ${custNo} AND CUST_NO != 0 AND GOODS_CD = Z.GOODS_CD) AS WISH_CNT
+			 , (SELECT COUNT(1) CNT FROM TB_WISHLIST WHERE CUST_NO = #{custNo} AND CUST_NO != 0 AND GOODS_CD = Z.GOODS_CD) AS WISH_CNT
 			 , Z.CART_SQ
 			 , Z.GOODS_CD
 			 , Z.GOODS_NM

+ 7 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfSocial.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.style24.front.biz.dao.TsfSocialDao">
 	<select id="getSocialInfo" resultType="Social" parameterType="Social">
-		<!-- TsfSocial.getSocialInfo -->
+		/* TsfSocial.getSocialInfo*/
 		SELECT A.SOCIAL_SQ
 		     , A.SOCIAL_NM
 		     , A.SOCIAL_TYPE
@@ -23,6 +23,7 @@
 	</select>
 	
 	<select id="getSocialGoodsList" resultType="Social" parameterType="Social">
+		/* TsfSocial.getSocialGoodsList*/
 		SELECT F.* 
 			 ,  (CASE WHEN F.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = F.GOODS_CD) 
 			    ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = F.GOODS_CD) 
@@ -31,6 +32,7 @@
 			 , CASE IFNULL((SELECT COUNT(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = F.GOODS_CD AND COLOR_CD = F.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ),0) 
 			            WHEN 0 THEN 'N'
 			            ELSE 'Y' END AS GOODS_IMAGE_YN
+			 ,(CASE WHEN F.WISH_GOOD IS NULL THEN 'N' ELSE 'Y' END) AS WISH_YN
 			FROM
 			(   
 				 SELECT A.SOCIAL_SQ
@@ -58,9 +60,13 @@
 				     , C.MAIN_COLOR_CD 
 				     , D.BRAND_KNM 
 				     , D.BRAND_ENM 
+				     , W.CUST_NO 
+				     , W.GOODS_CD AS WISH_GOOD
 				FROM TB_SOCIAL A INNER JOIN tb_social_goods B ON A.SOCIAL_SQ = B.SOCIAL_SQ 
 				                 INNER JOIN TB_GOODS C ON B.GOODS_CD = C.GOODS_CD 
 				                 INNER JOIN TB_BRAND D ON C.BRAND_CD = D.BRAND_CD
+				                 LEFT JOIN TB_WISHLIST W ON C.GOODS_CD = W.GOODS_CD
+		                             AND W.CUST_NO  = IFNULL(#{custNo},0)
 				WHERE 1=1
 				  AND NOW() BETWEEN A.SOCIAL_STDT AND A.SOCIAL_EDDT 
 				  AND A.USE_YN = 'Y'		    		 /*사용여부*/

+ 24 - 0
src/main/resources/persistence/mybatis-wms-config.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "HTTP://mybatis.org/dtd/mybatis-3-config.dtd">
+
+<configuration>
+
+	<settings>
+		<setting name="cacheEnabled" value="false" /> <!-- 설정에서 각 매퍼에 설정된 캐시를 전역적으로 사용할지 말지에 대한 여부 (default true)-->
+		<!-- <setting name="lazyLoadingEnabled" value="true" /> --> <!-- 지연로딩을 사용할지에 대한 여부. 사용하지 않는다면 모두 즉시 로딩 (default true) -->
+		<!-- <setting name="multipleResultSetsEnabled" value="true" /> --> <!-- 한개의 구문에서 여러개의 ResultSet을 허용할지의 여부 (default true) -->
+		<setting name="useGeneratedKeys" value="true" /> <!-- 생성키를 강제로 생성 (default false) -->
+		<setting name="defaultExecutorType" value="REUSE" /> <!-- 디폴트 실행자(executor) 설정. PreparedStatement를 재사용 (default SIMPLE)-->
+		<setting name="defaultStatementTimeout" value="25" /> <!-- 데이터베이스로의 응답을 얼마나 오래 기다릴지를 판단하는 타임아웃(초)를 설정 -->
+		<setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 데이터베이스 칼럼명 형태인 A_COLUMN을 CamelCase 형태의 자바 프로퍼티명 형태인 aColumn으로 자동으로 매핑하도록 함 (default false) -->
+		<setting name="logImpl" value="NO_LOGGING" /> <!-- 마이바티스가 사용할 로깅 구현체를 명시. 이 설정을 사용하지 않으면 마이바티스가 사용할 로깅 구현체를 자동으로 찾는다. -->
+		<setting name="jdbcTypeForNull" value="NULL"/> <!-- JDBC 타입을 파라미터에 제공하지 않을 때 null 값을 처리한 JDBC 타입을 명시 -->
+		<setting name="callSettersOnNulls" value="true"/> <!-- 가져온 값이 null일때 setter나 맵의 put 메소드를 호출할지를 명시 (default false) -->
+		<setting name="returnInstanceForEmptyRow" value="true"/> <!-- 모든 컬럼이 null이면 row를 null 인스턴스로 리턴 (default false: row를 null로 리턴) -->
+	</settings>
+	
+	<typeAliases>
+		<typeAlias alias="paramMap" type="com.gagaframework.web.parameter.GagaMap" />
+	</typeAliases>
+
+</configuration>

+ 45 - 0
src/main/webapp/WEB-INF/views/web/Yes24CallBackFormWeb.html

@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : Yes24CallBackFormWeb.html
+ * @desc    : Yes24 동의화면 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.15   gagamel     최초 작성
+ *******************************************************************************
+ -->
+<head th:replace="~{web/common/fragments/HeadWeb :: head}"></head>
+<th:block th:replace="~{web/common/fragments/VariablesWeb :: variables}"></th:block>
+<th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
+<body>
+
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+
+	// const resultMap = [[${resultMap}]];
+	// if (gagajf.isNull(resultMap.snsId) && gagajf.isNull(resultMap.snsType)){
+	// 	mcxDialog.alertC("인증에 실패하였습니다.<br> 로그인 정보를 확인해주시기 바랍니다.", {
+	// 		sureBtnText: "확인",
+	// 		sureBtnClick: function() {
+	// 			self.close();
+	// 		}
+	// 	});
+	// } else {
+	// 	opener.fnSnsSigninCallback(resultMap);
+	// 	self.close();
+	// }
+
+
+/*]]>*/
+</script>
+
+
+</body>
+</html>

+ 53 - 3
src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html

@@ -396,9 +396,6 @@
 
 <!-- 즉시구매 form -->
 <form id="cartInfoForm" method="post" action="/order/noMember"></form>
-<!-- KCP PG TEST -->
-<form name="order_info" method="post" action="pp_cli_hub.jsp" >
-</form>
 
 <script th:inline="javascript">
 	let sumRealPayAmt = [[${order.sumRealPayAmt + order.totDelvFee}]];
@@ -996,4 +993,57 @@
 		}
 	}
 </script>
+
+
+
+
+
+
+<!-- payment.js -->
+<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
+<script type="text/javascript" src="/ux/pc/js/payment.js"></script>
+<form id="order_info" name="order_info" method="post" action="/order/pay/result/response" ></form>
+<input type="button" id="buyBtn" value="KCP TEST" style="width:100px;height:200px;" />
+<script type="text/javascript">
+	$(document).on("click", "#buyBtn", function() {
+		let orderData = {
+			  pgGb		: "PAYCO"
+			, payMeans	: "G014_30"
+			, ordNo		: "5"
+			, goodsNm	: "상품 테스트"
+			, payAmt	: "1233"
+			, ordNm		: "이태영"
+			, ordEmail	: "xodud1202@naver.com"
+			, ordTelno	: "02-0000-0000"
+			, ordPhnno	: "010-7111-0000"
+		};
+
+		let jsonData = JSON.stringify(orderData);
+
+		$.ajax( {
+			type		: "POST",
+			url			: '/order/create/preOrder',
+			data		: jsonData,
+			dataType	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+				gagajf.showProgressbar(true);
+			},
+			error : function(e) {
+				alert(3);
+			},
+			success 	: function(result) {
+				// 결재정보로드
+				$("#order_info").html(result);
+				//kcp_AJAX();
+				jsf__pay(document.order_info);
+				//fnKakaoPaymentReady();
+				//fnNaverPaymentReady();
+			}
+		});
+	});
+</script>
+
 </html>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html

@@ -30,7 +30,7 @@
 	<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css" />
 	
 	<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
-	<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
+	<!-- <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> -->
 	<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
 	<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.0/js/swiper.min.js"></script>
 	<script src="/ux/pc/js/jquery.modal.min.js"></script>

+ 65 - 0
src/main/webapp/WEB-INF/views/web/common/fragments/MktScriptsWeb.html

@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : MktScriptsWeb.html
+ * @desc    : 마케팅 스크립트
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.18   gagamel     최초 작성
+ *******************************************************************************
+ -->
+<th:block th:fragment="mscripts">
+
+<th:block th:if="${sessioninfo != null}">
+<script th:inline="javascript">
+/*<![CDATA[*/
+	var gCustId = [[${sessionInfo.custId}]];
+	/*]]>*/
+</script>
+</th:block>
+<th:block th:if="${sessioninfo == null}">
+<script th:inline="javascript">
+/*<![CDATA[*/
+	var gCustId = '';
+	/*]]>*/
+</script>
+</th:block>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	String.prototype.hashCode = function() {
+		var hash = 0;
+		for (var i = 0; i < this.length; i++) {
+			var character = this.charCodeAt(i);
+			hash = ((hash<<5) - hash) + character;
+			hash = hash & hash; // Convert to 32bit integer
+		}
+		return hash;
+	}
+	
+	var hCustId = gCustId ? gCustId.hashCode() : '';
+	console.log('hCustId: ' + hCustId);
+	
+	/* Eiengine Script */
+	window._eglqueue = window._eglqueue || [];
+	_eglqueue.push(['setVar', 'cuid', '1252aed4-78dc-46e8-b784-94ac42e86dd4']);
+	_eglqueue.push(['setVar', 'userId', hCustId]);
+	_eglqueue.push(['track', 'visit']);
+	(function (s, x) {
+		s = document.createElement('script'); s.type = 'text/javascript';
+		s.async = true; s.defer = true; s.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://logger.eigene.io/js/logger.min.js';
+		x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
+	})();
+	/* \\Eiengine Script */
+/*]]>*/
+</script>
+
+</th:block>
+
+</html>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/common/layout/BrandLayoutWeb.html

@@ -27,7 +27,7 @@
 <footer id="footer" th:replace="~{web/common/fragments/FooterWeb :: footer}"></footer>
 
 <th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
-<!-- <th:block th:replace="~{web/common/fragments/MarketingScripts :: mscripts}"></th:block> -->
+<th:block th:replace="~{web/common/fragments/MktScriptsWeb :: mscripts}"></th:block>
 
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 1 - 1
src/main/webapp/WEB-INF/views/web/common/layout/CallcenterLayoutWeb.html

@@ -27,7 +27,7 @@
 <footer id="footer" th:replace="~{web/common/fragments/FooterWeb :: footer}"></footer>
 
 <th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
-<!-- <th:block th:replace="~{web/common/fragments/MarketingScripts :: mscripts}"></th:block> -->
+<th:block th:replace="~{web/common/fragments/MktScriptsWeb :: mscripts}"></th:block>
 
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 1 - 1
src/main/webapp/WEB-INF/views/web/common/layout/DefaultLayoutWeb.html

@@ -27,7 +27,7 @@
 <footer id="footer" th:replace="~{web/common/fragments/FooterWeb :: footer}"></footer>
 
 <th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
-<!-- <th:block th:replace="~{web/common/fragments/MarketingScripts :: mscripts}"></th:block> -->
+<th:block th:replace="~{web/common/fragments/MktScriptsWeb :: mscripts}"></th:block>
 
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 1 - 2
src/main/webapp/WEB-INF/views/web/common/layout/MypageLayoutWeb.html

@@ -74,9 +74,8 @@
 <footer id="footer" th:replace="~{web/common/fragments/FooterWeb :: footer}"></footer>
 
 <th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
-<!-- <th:block th:replace="~{web/common/fragments/MarketingScripts :: mscripts}"></th:block> -->
-
 <script th:src="@{'/ux/pc/js/mypage.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/ux/pc/js/mypage.js"></script>
+<th:block th:replace="~{web/common/fragments/MktScriptsWeb :: mscripts}"></th:block>
 
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 58 - 3
src/main/webapp/WEB-INF/views/web/mypage/MypageCustModifyFormWeb.html

@@ -16,6 +16,7 @@
  * 1.0  2021.03.15   jsshin      최초 작성
  *******************************************************************************
  -->
+<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
 <body>
 <th:block layout:fragment="content">
 	<div class="my_cont">
@@ -23,7 +24,7 @@
 			<h3>회원정보 수정</h3>
 		</div>
 		<div class="sec_body mypage_body">
-			<form id="custModiFyForm" class="form_wrap" role="form" method="post">
+			<form id="custModiFyForm" class="form_wrap" role="form" method="post" action="/mypage/account/check" accept-charset="EUC-KR" onsubmit="document.charset='euc-kr';">
 				<div class="order_list">
 					<section class="order_row">
 						<div class="order_tit">
@@ -113,7 +114,7 @@
 										<th>은행명</th>
 										<td>
 											<div class="form_field">
-												<select id="bankList">
+												<select id="bankList" name="bankList">
 													<option value="">선택</option>
 													<option th:if="${bankList}" th:each="oneData, status : ${bankList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
 												</select>
@@ -123,8 +124,11 @@
 									<tr>
 										<th>계좌번호</th>
 										<td>
-											<input type="text" id="accountNumber" name="accountNumber" class="form_control" value="" placeholder=""/>
+											<input type="text" id="accountNumber" name="accountNumber" class="form_control" value="27560104388848" placeholder=""/>
 										</td>
+										<button type="button" id="btnAccountCheck" class="btn btn_dark submit_btn">
+											<span>계좌인증</span>
+										</button>
 									</tr>
 								</tbody>
 							</table>
@@ -270,6 +274,53 @@
 		console.log('jsonData', jsonData);
 	});
 
+	$('#btnAccountCheck').on('click', function () {
+		let custInfo = {};
+		let jsonData = JSON.stringify(custInfo)
+		//gagajf.ajaxJsonSubmit('/mypage/account/check', jsonData, fnAccountCheckCallback);
+		//ajaxSubmit('/mypage/account/check','html','accountHolder')
+		$('#custModiFyForm').submit();
+	});
+
+	var fnAccountCheckCallback = function (result) {
+		console.log('result', result);
+
+	}
+
+	var ajaxSubmit = function(actionUrl, type, callback, params) {
+		$.ajax({
+			type : "POST",
+			url : actionUrl,
+			data : $('#custModiFyForm').serialize(),
+			dataType : type,
+			contentType: 'application/x-www-form-urlencoded;charset=euc-kr',
+			beforeSend : function(xhr) {
+				// Button disabled
+				xhr.overrideMimeType('application/x-www-form-urlencoded;charset=euc-kr');
+				// ProgressBar show
+			},
+			complete : function() {
+				// Button enabled
+
+				// ProgressBar hide
+			},
+			success : function(result) {
+				console.log(result);
+				if (type === "html") {
+					if (!gagajf.isNull(callback))
+						$(document.getElementById(callback)).html(result);
+				} else {
+					// Callback 함수 호출
+					if (typeof(callback) === "function")
+						callback.call(this, result);
+				}
+			},
+			error : function() {
+				alert("오류로 인해 처리되지 않았습니다.");
+			}
+		});
+	}
+
 	$(document).ready(function() {
 		// 마이페이지 LNB 설정
 		fnSetMypageLnbList(10);
@@ -281,6 +332,10 @@
 		fnGetCustInfo();
 
 	});
+
+
+
+
 	/*]]>*/
 </script>
 </th:block>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

@@ -30,7 +30,7 @@
 			<div class="content dp_hotdeal"> <!-- 페이지특정 클래스 = dp_hotdeal -->
 				<div class="cont_head">
 					<div>
-                        <h3>[[${socialInfo.socialNm}]]</h3>
+                        <h3 th:text="${socialInfo.socialNm}"></h3>
                     </div>
 				</div>
 				<div class="cont_body">
@@ -50,7 +50,7 @@
                                         <div class="itemPic">
                                             <div class="shape ranker"><span>특가</span></div>
                                             <img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + SocialData.sysImgNm}">
-                                            <button type="button" class="itemLike active">관심상품 추가</button>
+                                            <button type="button" class="itemLike" th:classappend="${SocialData.wishYn == 'Y'}? 'active' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${SocialData.goodsCd}, ithrCd='', contentsLoc='', planDtlSq=''">관심상품 추가</button>
                                         </div>
                                         <p class="itemBrand" th:text="${SocialData.brandKnm}"></p>
                                         <div class="itemName" th:text="${SocialData.goodsNm}" style="font-size: 18px;"></div>