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

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

jsshin 5 лет назад
Родитель
Сommit
bd3f40ff3d
51 измененных файлов с 1058 добавлено и 724 удалено
  1. 54 1
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  2. 40 39
      src/main/java/com/style24/front/biz/thirdparty/SearchEngineDiquest.java
  3. 1 0
      src/main/java/com/style24/front/biz/web/TsfCartController.java
  4. 5 0
      src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  5. 49 0
      src/main/java/com/style24/front/biz/web/TsfNoMemberController.java
  6. 17 1
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  7. 23 0
      src/main/java/com/style24/persistence/domain/searchengine/CateResponse.java
  8. 1 1
      src/main/java/com/style24/persistence/domain/searchengine/Filter.java
  9. 21 0
      src/main/java/com/style24/persistence/domain/searchengine/FilterResponse.java
  10. 42 0
      src/main/java/com/style24/persistence/domain/searchengine/GoodsListResponse.java
  11. 10 10
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  12. 2 2
      src/main/resources/config/application-locd.yml
  13. 2 2
      src/main/resources/config/application-style.yml
  14. 2 2
      src/main/resources/config/application-tsit.yml
  15. 18 1
      src/main/webapp/WEB-INF/views/mob/cart/CartListFormMob.html
  16. 11 1
      src/main/webapp/WEB-INF/views/mob/common/fragments/FooterMob.html
  17. 1 0
      src/main/webapp/WEB-INF/views/mob/common/fragments/HeadMob.html
  18. 18 0
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html
  19. 9 0
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  20. 19 10
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCancelFormMob.html
  21. 1 0
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreCancelDetailFormMob.html
  22. 31 16
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreExchangeDetailFormMob.html
  23. 10 67
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreListFormMob.html
  24. 5 3
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreListInfoMob.html
  25. 44 35
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreReturnDetailFormMob.html
  26. 2 0
      src/main/webapp/WEB-INF/views/mob/mypage/MypageExchangeFormMob.html
  27. 10 37
      src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListFormMob.html
  28. 19 4
      src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListInfoMob.html
  29. 16 7
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReturnFormMob.html
  30. 19 10
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCancelFormMob.html
  31. 1 0
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreCancelDetailFormMob.html
  32. 31 16
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreExchangeDetailFormMob.html
  33. 118 92
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreListFormMob.html
  34. 44 35
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreReturnDetailFormMob.html
  35. 2 0
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberExchangeFormMob.html
  36. 66 130
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberOrderListFormMob.html
  37. 16 7
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberReturnFormMob.html
  38. 1 1
      src/main/webapp/WEB-INF/views/mob/order/OrderAddPaymentFormMob.html
  39. 16 0
      src/main/webapp/WEB-INF/views/mob/order/OrderCompleteMob.html
  40. 23 21
      src/main/webapp/WEB-INF/views/mob/order/OrderGiftInfoMob.html
  41. 2 7
      src/main/webapp/WEB-INF/views/mob/planning/PlanningEventAttendFormMob.html
  42. 16 0
      src/main/webapp/WEB-INF/views/web/cart/CartListFormWeb.html
  43. 12 0
      src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html
  44. 3 2
      src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html
  45. 88 75
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html
  46. 90 79
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  47. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageCreExchangeDetailFormWeb.html
  48. 1 1
      src/main/webapp/WEB-INF/views/web/order/OrderAddPaymentFormWeb.html
  49. 16 4
      src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html
  50. 2 3
      src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html
  51. 7 1
      src/main/webapp/biz/goods.js

+ 54 - 1
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -35,6 +35,8 @@ import com.style24.persistence.domain.searchengine.SearchEngine;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.parameter.GagaMap;
+
 /**
  * 상품 Service
  *
@@ -653,7 +655,58 @@ public class TsfGoodsService {
 	 * @date 2021. 3. 10
 	 */
 	public Collection<Measurement> getMeasurementList(Goods goods) {
-		return goodsDao.getMeasurementList(goods);
+		
+		 return goodsDao.getMeasurementList(goods);
+	}
+	
+	/**
+	 * 실측사이즈 조회
+	 *
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @date 2021. 3. 10
+	 */
+	public GagaMap getMeasurementListNew(Goods goods) {
+		GagaMap result = new GagaMap();
+		// 행, 열 변환
+		Collection<Measurement> getMeasurementList = goodsDao.getMeasurementList(goods);
+		
+		if (getMeasurementList == null || getMeasurementList.size() <=0) {
+			result.set("flag", "NOT");
+			return result;
+		}
+		
+		int colSize = getMeasurementList.size(); 	// 열 column
+		int rowSize = 5; // 상의하위포함 최대사이즈
+
+		
+		String[][] arrMeasurementList = new String[rowSize + 1][colSize + 1];
+
+		// 사이즈 설정
+		int yIndex = 0;
+		for (Measurement measurement : getMeasurementList) {
+			arrMeasurementList[0][0] = measurement.getTypecd();
+			yIndex++;
+			arrMeasurementList[0][yIndex] = measurement.getOptCd2();
+			
+			// 부위명 설정
+			arrMeasurementList[1][0] = measurement.getTypecd();
+			arrMeasurementList[2][0] = measurement.getTypecd();
+			arrMeasurementList[3][0] = measurement.getTypecd();
+			arrMeasurementList[4][0] = measurement.getTypecd();
+			arrMeasurementList[5][0] = measurement.getTypecd();
+			arrMeasurementList[1][yIndex] = String.valueOf(measurement.getValue1());
+			arrMeasurementList[2][yIndex] = String.valueOf(measurement.getValue2());
+			arrMeasurementList[3][yIndex] = String.valueOf(measurement.getValue3());
+			arrMeasurementList[4][yIndex] = String.valueOf(measurement.getValue4());
+			arrMeasurementList[5][yIndex] = String.valueOf(measurement.getValue5());
+		}
+		log.info("arrMeasurementList = {}", arrMeasurementList);
+		
+		result.set("flag", "OK");
+		result.set("dataList", arrMeasurementList);
+		return result;
 	}
 
 	/**

+ 40 - 39
src/main/java/com/style24/front/biz/thirdparty/SearchEngineDiquest.java

@@ -1,7 +1,6 @@
 package com.style24.front.biz.thirdparty;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -16,8 +15,12 @@ import org.springframework.stereotype.Component;
 import com.diquest.ir.common.exception.IRException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
+import com.style24.front.biz.dao.TsfDisplayDao;
 import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.Cate1;
+import com.style24.persistence.domain.searchengine.CateResponse;
 import com.style24.persistence.domain.searchengine.Filter;
+import com.style24.persistence.domain.searchengine.FilterResponse;
 import com.style24.persistence.domain.searchengine.SearchEngine;
 
 import istyle.AutoSearch;
@@ -39,12 +42,15 @@ public class SearchEngineDiquest {
 	private Environment env;
 
 	private String ipAddr;	// 검색엔진 IP
-	private String port;	// 검색엔진 포트
+	private Integer port;	// 검색엔진 포트
+
+	@Autowired
+	private TsfDisplayDao displayDao;
 
 	@PostConstruct
 	public void init() {
 		ipAddr = env.getProperty("search.engine.diquest.ip");
-		port = env.getProperty("search.engine.diquest.port");
+		port = Integer.valueOf(env.getProperty("search.engine.diquest.port"));
 
 		log.debug("\n\n---- NHN Diquest initialization started ----");
 		log.debug("ipAddr: [{}]", ipAddr);
@@ -62,16 +68,18 @@ public class SearchEngineDiquest {
 		SearchEngine result = new SearchEngine();
 
 		// 인기검색어
-		Map<String, Object> map = new HashMap<String, Object>();
-		map.put("adminIp", ipAddr);
-		map.put("adminPort", port);
+		Map<String, Object> paramMap = new HashMap<String, Object>();
+		paramMap.put("adminIp", ipAddr);
+		paramMap.put("adminPort", port);
+		log.info("///[getTrendKeywordList] paramMap: {}", paramMap);
 
 		try {
-			JSONObject jsonObj = AutoSearch.trendKeyword(map);
-			log.info("jsonObj.toJSONString(): {}", jsonObj.toJSONString());
+			JSONObject jsonObj = AutoSearch.trendKeyword(paramMap);
+			log.info("///[getTrendKeywordList] jsonObj: {}", jsonObj.toJSONString());
 
 			Gson gson = new Gson();
 			result = gson.fromJson(jsonObj.toJSONString(), SearchEngine.class);
+			log.info("///[getTrendKeywordList] result: {}", result);
 		} catch (IRException e) {
 			e.printStackTrace();
 		}
@@ -86,40 +94,36 @@ public class SearchEngineDiquest {
 	 * @author gagamel
 	 * @since 2021. 5. 31
 	 */
-	@SuppressWarnings("unchecked")
-	public SearchEngine getCategoryList(SearchEngine params) {
-		SearchEngine result = new SearchEngine();
+	public Collection<Cate1> getCategoryList(SearchEngine params) {
+		Collection<Cate1> result = new ArrayList<Cate1>();
 
-		Map<String, Object> paramMap = new HashMap<>();// this.convertObjectToMap(params);
+		Map<String, Object> paramMap = this.convertObjectToMap(params);
 		paramMap.put("adminIp", ipAddr);
 		paramMap.put("adminPort", port);
 //		paramMap.put("cate1No", 1300);
-		paramMap.put("brandGroupNo", 0);
+//		paramMap.put("brandGroupNo", 0);
 		paramMap.put("frontGb", TsfSession.getFrontGb());
-		paramMap.put("keyword", "키즈");
-		paramMap.put("formalGb", "G009_20");
+//		paramMap.put("keyword", "키즈");
+//		paramMap.put("formalGb", "G009_20");
 
 		// 브랜드그룹번호 값이 있으면 (=브랜드메인에서 조회했으면)
 		paramMap.put("defaultCateYn", "Y");
 		if (params.getBrandGroupNo() > 0) {
-			paramMap.put("defaultCateYn", "Y");
+			paramMap.put("defaultCateYn", displayDao.getBrandGroupDefaultCategoryYn(params.getBrandGroupNo()));
 		}
-
-		log.info("--------------------------1");
-		log.info("{}", paramMap);
+		log.info("///[getCategoryList] paramMap: {}", paramMap);
 
 		try {
-			log.info("--------------------------2");
 			JSONObject jsonObj = SearchService.getCategoryGoodsList(paramMap);
-			log.info("jsonObj: {}", jsonObj.toString());
-
-//			Gson gson = new Gson();
-//			Map<String, Object> resMap = gson.fromJson(jsonObj.toJSONString(), Map.class);
-//			log.info("{}", resMap);
-//
-//			if (resMap.get("returnCode").equals("1")) { // 성공
-//				result = gson.fromJson(resMap.get("response").toString(), SearchEngine.class);
-//			}
+			log.info("///[getCategoryList] jsonObj: {}", jsonObj.toJSONString());
+
+			Gson gson = new Gson();
+			CateResponse response = gson.fromJson(jsonObj.toJSONString(), CateResponse.class);
+
+			if (jsonObj.get("returnCode").toString().equals("1")) { // 성공
+				result = response.getResponse();
+				log.info("///[getCategoryList] result: {}", result);
+			}
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -134,28 +138,25 @@ public class SearchEngineDiquest {
 	 * @author gagamel
 	 * @since 2021. 5. 31
 	 */
-	@SuppressWarnings("unchecked")
 	public Collection<Filter> getFilterList(SearchEngine params) {
 		Collection<Filter> result = new ArrayList<Filter>();
 
 		Map<String, Object> paramMap = this.convertObjectToMap(params);
 		paramMap.put("adminIp", ipAddr);
 		paramMap.put("adminPort", port);
-		log.info("{}", paramMap);
+		paramMap.put("frontGb", TsfSession.getFrontGb());
+		log.info("///[getFilterList] paramMap: {}", paramMap);
 
 		try {
 			JSONObject jsonObj = SearchService.getFilterList(paramMap);
-			log.info("jsonObj.toJSONString(): {}", jsonObj.toJSONString());
+			log.info("///[getFilterList] jsonObj: {}", jsonObj.toJSONString());
 
 			Gson gson = new Gson();
-			Map<String, Object> resMap = gson.fromJson(jsonObj.toJSONString(), Map.class);
-			log.info("{}", resMap);
+			FilterResponse response = gson.fromJson(jsonObj.toJSONString(), FilterResponse.class);
 
-			if (resMap.get("returnCode").equals("1")) { // 성공
-				Filter[] arrFilter = gson.fromJson(resMap.get("response").toString(), Filter[].class);
-				result = Arrays.asList(arrFilter);
-//				result = gson.fromJson(resMap.get("response").toString(), new TypeToken<Collection<Filter>>() {
-//				}.getType());
+			if (jsonObj.get("returnCode").toString().equals("1")) { // 성공
+				result = response.getResponse();
+				log.info("///[getFilterList] result: {}", result);
 			}
 		} catch (Exception e) {
 			e.printStackTrace();

+ 1 - 0
src/main/java/com/style24/front/biz/web/TsfCartController.java

@@ -84,6 +84,7 @@ public class TsfCartController extends TsfBaseController {
 	@GetMapping("/list/form")
 	public ModelAndView cartListForm() {
 		ModelAndView mav = new ModelAndView();
+		mav.addObject("loginCustNo", TsfSession.getInfo().getCustNo());
 		mav.setViewName(super.getDeviceViewName("cart/CartListForm"));
 		return mav;
 	}

+ 5 - 0
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -667,7 +667,12 @@ public class TsfGoodsController extends TsfBaseController {
 		Collection<Measurement> measurementList = new ArrayList<Measurement>();
 		if ("Y".equals(goods.getSelfGoodsYn())) {
 			paramsGoods.setOptCd1(colorCd);
+			
 			measurementList = goodsService.getMeasurementList(paramsGoods);
+
+			// 개발중 eskim
+			//GagaMap result = goodsService.getMeasurementList(paramsGoods);
+			
 			if (measurementList != null && !measurementList.isEmpty()) {
 				typeCd = measurementList.iterator().next().getTypecd();
 				if ("하의".equals(typeCd)) {

+ 49 - 0
src/main/java/com/style24/front/biz/web/TsfNoMemberController.java

@@ -1504,4 +1504,53 @@ public class TsfNoMemberController extends TsfBaseController {
 		result.set("isValid", isValid);
 		return result;
 	}
+
+	/**
+	 * 비회원 취반교목록 사전 정보 조회 (모바일)
+	 *
+	 * @param Order
+	 * @return ModelAndView
+	 * @author card007
+	 * @since 2021. 06. 01
+	 */
+	@ResponseBody
+	@PostMapping("/cre/list/pre/info")
+	public GagaMap getCreListPreInfo(@RequestBody OrderChange orderChange) {
+		GagaMap result = new GagaMap();
+
+		// 페이징 처리 설정
+		TscPageRequest pageable = new TscPageRequest((orderChange.getPageNo() > 0 ? orderChange.getPageNo() - 1 : 0), orderChange.getPageSize(), orderChange.getPageUnit());
+		pageable.setTotalCount(orderChangeService.getPagingCreListCount(orderChange));
+		orderChange.setPageable(pageable);
+
+		result.set("paging"		, pageable);
+		result.set("creList"	, orderChangeService.getPagingCreList(orderChange));
+
+		return result;
+	}
+
+	/**
+	 * 비회원 취반교목록 조회 (모바일)
+	 *
+	 * @param Order
+	 * @return ModelAndView
+	 * @author card007
+	 * @since 2021. 06. 01
+	 */
+	@ResponseBody
+	@PostMapping("/cre/list/info")
+	public ModelAndView getCreListInfo2(@RequestBody OrderChange orderChange) {
+		// 주문목록조회
+		ModelAndView mav = new ModelAndView();
+
+		Collection<GagaMap> creList = orderChangeService.getCreList(orderChange);
+
+		mav.addObject("creList"			, 	creList);
+		mav.addObject("creListCnt"		, 	creList.size());
+		mav.addObject("pageNo"			, 	orderChange.getPageNo());
+
+		mav.setViewName(super.getDeviceViewName("mypage/NoMemberCreListInfo"));
+
+		return mav;
+	}
 }

+ 17 - 1
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -20,6 +20,7 @@ import org.springframework.web.servlet.ModelAndView;
 import com.gagaframework.web.parameter.GagaMap;
 import com.style24.core.biz.service.TscFreegiftService;
 import com.style24.core.biz.service.TscKakaoPayService;
+import com.style24.core.biz.service.TscKakaotalkService;
 import com.style24.core.biz.service.TscNaverPayService;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
@@ -73,6 +74,9 @@ public class TsfOrderController extends TsfBaseController {
 	@Autowired
 	private TscNaverPayService coreNaverPayService;
 	
+	@Autowired
+	private TscKakaotalkService kakaotalkService;
+	
 	/**
 	 * 회원, 비회원 주문페이지
 	 *
@@ -1030,7 +1034,19 @@ public class TsfOrderController extends TsfBaseController {
 			return mav;
 		}
 		
-		// TODO 주문정보 알림톡전송
+		// TODO 2021.05.31 알림톡전송 주문완료정보
+		/*
+		if (StringUtils.isNotBlank(orderInfo.getCellPhnno())) {
+			Integer userNo = orderInfo.getCustNo();
+			try {
+				orderInfo.setGoodsNm((String) resultMap.get("goodsNm"));
+				kakaotalkService.sendOrderComplete(orderInfo, userNo);
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		*/
 		
 		// 2021.04.27 마일리지, 제휴할인정보
 		Order payOrder = orderService.getPaymentInfoForMypage(order);

+ 23 - 0
src/main/java/com/style24/persistence/domain/searchengine/CateResponse.java

@@ -0,0 +1,23 @@
+package com.style24.persistence.domain.searchengine;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import com.style24.persistence.domain.Cate1;
+
+import lombok.Data;
+
+/**
+ * 검색엔진 카테고리 Response 도메인
+ * 
+ * @author gagamel
+ * @since 2021. 6. 1
+ */
+@SuppressWarnings("serial")
+@Data
+public class CateResponse implements Serializable {
+
+	private Integer returnCode;				// 응답코드(양수: 정상, 음수: 오류)
+	private Collection<Cate1> response;
+
+}

+ 1 - 1
src/main/java/com/style24/persistence/domain/searchengine/Filter.java

@@ -5,7 +5,7 @@ import java.io.Serializable;
 import lombok.Data;
 
 /**
- * 검색엔진 연동 도메인
+ * 검색엔진 Filter 도메인
  * 
  * @author gagamel
  * @since 2021. 4. 29

+ 21 - 0
src/main/java/com/style24/persistence/domain/searchengine/FilterResponse.java

@@ -0,0 +1,21 @@
+package com.style24.persistence.domain.searchengine;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import lombok.Data;
+
+/**
+ * 검색엔진 Filter Response 도메인
+ * 
+ * @author gagamel
+ * @since 2021. 6. 1
+ */
+@SuppressWarnings("serial")
+@Data
+public class FilterResponse implements Serializable {
+
+	private Integer returnCode;				// 응답코드(양수: 정상, 음수: 오류)
+	private Collection<Filter> response;
+
+}

+ 42 - 0
src/main/java/com/style24/persistence/domain/searchengine/GoodsListResponse.java

@@ -0,0 +1,42 @@
+package com.style24.persistence.domain.searchengine;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import lombok.Data;
+
+/**
+ * 검색엔진 상품리스트 Response 도메인
+ * 
+ * @author gagamel
+ * @since 2021. 6. 1
+ */
+@SuppressWarnings("serial")
+@Data
+public class GoodsListResponse implements Serializable {
+
+	private Integer returnCode;				// 응답코드(양수: 정상, 음수: 오류)
+	private int totalCount;					// 상품전체건수
+	private Collection<Goods> response;
+
+	@Data
+	public class Goods {
+		private String brandGroupNm;	// 브랜드그룹명
+		private String goodsCd;			// 상품코드
+		private String goodsFullNm;		// 상품FULL명
+		private String goodsTnm;		// 상품타이틀명
+		private int listPrice;			// 정상가
+		private int currPrice;			// 현재판매가(=혜택가)
+		private String sysImgNm;		// 상품시스템파일명(썸네일 기본 이미지)
+		private String sysImgNm2;		// 상품시스템파일명2(썸네일 마우스오버 이미지)
+		private String videos;			// 동영상들(,로 연결된 문자열. 동영상구분:미디어컨텐츠 또는 유튜브동영상ID, ...)
+		private String colorChips;		// 컬러칩들(,로 연결된 문자열. 색상코드:컬러칩, ...)
+		private String sizes;			// 사이즈들(,로 연결된 문자열. 사이즈코드:품절여부, ...)
+		private String benefits;		// 혜택들(,로 연결된 문자열. 혜택구분:혜택명, ...)
+
+		private String likeIt;			// 좋아요(위시리스트에담긴상품)
+		private String mainColorCd;		// 메인컬러
+		private String selfGoodsYn;		// 자사상품여부
+	}
+
+}

+ 10 - 10
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -850,7 +850,7 @@
 		                                     AND B.GOODS_CD = BB.GOODS_CD
 		                                     AND BB.GOODS_GB = 'G800_30'  -- 제외상품
 		                                     AND BB.GOODS_CD IS NULL
-		    INNER JOIN TB_GOODS G ON B.GOODS_CD = G.GOODS_CD
+		    INNER JOIN TB_GOODS G USE INDEX (IX_GOODS_11) ON B.GOODS_CD = G.GOODS_CD
 		                          AND G.GOODS_STAT = 'G008_90'
 		                          AND G.SELF_MALL_YN = 'Y'
 		                          AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT
@@ -957,7 +957,7 @@
 		             ${goodsSql}
 		           ) A
 		      JOIN ( SELECT @rownum := 0) R     
-		      INNER JOIN TB_GOODS G ON A.GOODS_CD = G.GOODS_CD
+		      INNER JOIN TB_GOODS G USE INDEX (IX_GOODS_11) ON A.GOODS_CD = G.GOODS_CD
 		      INNER JOIN TB_BRAND D ON G.BRAND_CD = D.BRAND_CD
 		                            AND D.USE_YN = 'Y'
 		      INNER JOIN TB_SITE_BRAND SB ON D.BRAND_CD  = SB.BRAND_CD
@@ -1456,7 +1456,7 @@
 		                <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
 		                    FROM	TB_CONTENTS CT
 		                    , TMP_CONTENTS_GOODS CTG
-		                    , TB_GOODS G
+		                    , TB_GOODS G USE INDEX (IX_GOODS_11)
 		                    , TB_GOODS_STOCK S
 		                    , TB_BRAND B
 		                    , TB_BRAND_GROUP BG
@@ -1473,7 +1473,7 @@
 		                <otherwise>
 		                    FROM   TB_CATE_4SRCH C4
 		                    , TB_CATE_GOODS CG
-		                    , TB_GOODS G
+		                    , TB_GOODS G USE INDEX (IX_GOODS_11)
 		                    , TB_GOODS_STOCK S
 		                    , TB_BRAND B
 		                    , TB_BRAND_GROUP BG
@@ -1661,7 +1661,7 @@
 		        	<when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
 		        		FROM	TB_CONTENTS CT
 		        		, TMP_CONTENTS_GOODS CTG
-		        		, TB_GOODS G
+		        		, TB_GOODS G USE INDEX (IX_GOODS_11)
 		        		, TB_GOODS_STOCK S
 		        		, TB_BRAND B
 		        		, TB_BRAND_GROUP BG
@@ -1678,7 +1678,7 @@
 		        	<otherwise>
 		        		FROM   TB_CATE_4SRCH C4
 		        		, TB_CATE_GOODS CG
-		        		, TB_GOODS G
+		        		, TB_GOODS G USE INDEX (IX_GOODS_11)
 		        		, TB_GOODS_STOCK S
 		        		, TB_BRAND B
 		        		, TB_BRAND_GROUP BG
@@ -1782,7 +1782,7 @@
 		                                            , G.GOODS_CD) AS NUMB
 		            FROM   TB_CATE_4SRCH C4
 		                 , TB_CATE_GOODS CG
-		                 , TB_GOODS G
+		                 , TB_GOODS G USE INDEX (IX_GOODS_11)
 		                 , TB_GOODS_STOCK GS
 		                 , TB_BRAND B
 		                 , TB_BRAND_GROUP BG
@@ -2710,7 +2710,7 @@
 		             , G.REG_DT                               /*등록일시*/
 		             , GS.SELL_WEEK_QTY                       /*주간판매수량*/
 		             , GS.REVIEW_REG_CNT                      /*리뷰등록건수*/
-		        FROM   TB_GOODS G
+		        FROM   TB_GOODS G USE INDEX (IX_GOODS_11)
 		        INNER JOIN TB_GOODS_STOCK S ON G.GOODS_CD = S.GOODS_CD
 		        INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		        INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
@@ -2862,7 +2862,7 @@
 		                 , G.REG_DT                                /*등록일시*/
 		                 , GS.SELL_WEEK_QTY                        /*주간판매수량*/
 		                 , GS.REVIEW_REG_CNT                       /*리뷰등록건수*/
-		            FROM   TB_GOODS G
+		            FROM   TB_GOODS G USE INDEX (IX_GOODS_11)
 		            INNER JOIN TB_GOODS_STOCK S ON G.GOODS_CD = S.GOODS_CD
 		            INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		            INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
@@ -3171,7 +3171,7 @@
 		                 , GS.REVIEW_REG_CNT /*리뷰등록건수*/
 		            FROM TB_CATE_4SRCH C4
 		            INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		            INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
+		            INNER JOIN TB_GOODS G USE INDEX (IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
 		            INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
 		            INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		            INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO

+ 2 - 2
src/main/resources/config/application-locd.yml

@@ -89,8 +89,8 @@ naverPay:
     button.key : 3A1578F9-6824-4FCF-AC8D-262318C63227
     button.pc.js.url : https://test-pay.naver.com/customer/js/naverPayButton.js
     button.mobile.js.url : https://test-pay.naver.com/customer/js/mobile/naverPayButton.js
-    common.certification.key : E3122594-C690-4542-B3A0-E74ABD4E8222
-    certification.key: E3122594-C690-4542-B3A0-E74ABD4E8222
+    common.certification.key : s_3799db3bf4af-
+    certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
     order.api.url: https://test-api.pay.naver.com/o/customer/api/order/v20/register
     order.pc.url: https://test-order.pay.naver.com/customer/buy/
     order.mobile.url: https://test-m.pay.naver.com/o/customer/buy/

+ 2 - 2
src/main/resources/config/application-style.yml

@@ -101,8 +101,8 @@ naverPay:
     button.key: 3A1578F9-6824-4FCF-AC8D-262318C63227
     button.pc.js.url: https://test-pay.naver.com/customer/js/naverPayButton.js
     button.mobile.js.url: https://test-pay.naver.com/customer/js/mobile/naverPayButton.js
-    common.certification.key: E3122594-C690-4542-B3A0-E74ABD4E8222
-    certification.key: E3122594-C690-4542-B3A0-E74ABD4E8222
+    common.certification.key: s_3799db3bf4af-
+    certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
     order.api.url: https://test-api.pay.naver.com/o/customer/api/order/v20/register
     order.pc.url: https://test-order.pay.naver.com/customer/buy/
     order.mobile.url: https://test-m.pay.naver.com/o/customer/buy/

+ 2 - 2
src/main/resources/config/application-tsit.yml

@@ -94,8 +94,8 @@ naverPay:
     button.key : 3A1578F9-6824-4FCF-AC8D-262318C63227
     button.pc.js.url: https://test-pay.naver.com/customer/js/naverPayButton.js
     button.mobile.js.url: https://test-pay.naver.com/customer/js/mobile/naverPayButton.js
-    common.certification.key : E3122594-C690-4542-B3A0-E74ABD4E8222
-    certification.key: E3122594-C690-4542-B3A0-E74ABD4E8222
+    common.certification.key : s_3799db3bf4af-
+    certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
     order.api.url: https://test-api.pay.naver.com/o/customer/api/order/v20/register
     order.pc.url: https://test-order.pay.naver.com/customer/buy/
     order.mobile.url: https://test-m.pay.naver.com/o/customer/buy/

+ 18 - 1
src/main/webapp/WEB-INF/views/mob/cart/CartListFormMob.html

@@ -18,6 +18,9 @@
  -->
 <body>
 <th:block layout:fragment="content">
+
+	<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>
+
 	<main role="" id="" class="container od">
 		<section class="content shopping_bag" id="cartAjaxList">
 			<!-- 장바구니 내용 -->
@@ -288,7 +291,21 @@
 		});
 	}
 </script>
-
+<!--네이버페이 전환스크립트를 이용하여 전환값 설정-->
+<script th:inline="javascript">
+	var _nasa={};
+	if (window.wcs) _nasa["cnv"] = wcs.cnv("3","[[${loginCustNo}]]");
+</script>
+<!--위 스크립트를 통해 설정된 전환값과 본 페이지의 로그를 서버에 전송-->
+<script th:inline="javascript">
+	if (!wcs_add) var wcs_add = {};
+	wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+	if (!_nasa) var _nasa = {};
+	if (window.wcs) {
+		wcs.inflow("style24.com");
+		wcs_do(_nasa); //서버로 로그 전송
+	}
+</script>
 </th:block>
 
 </body>

+ 11 - 1
src/main/webapp/WEB-INF/views/mob/common/fragments/FooterMob.html

@@ -459,7 +459,17 @@ function noneImg(noneSrc){
 }
 /*]]>*/
 </script>
-
+<!-- 네이버페이 유입 공통 적용 스크립트 , 모든 페이지에 노출되도록 설치. 단 전환페이지 설정값보다 항상 하단에 위치해야함 -->
+<script type="text/javascript" src="//wcs.naver.net/wcslog.js"> </script>
+<script type="text/javascript">
+	if (!wcs_add) var wcs_add={};
+	wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+	if (!_nasa) var _nasa={};
+	if(window.wcs){
+		wcs.inflow("style24.com");
+		wcs_do(_nasa);
+	}
+</script>
 </th:block>
 
 </html>

+ 1 - 0
src/main/webapp/WEB-INF/views/mob/common/fragments/HeadMob.html

@@ -21,6 +21,7 @@
 	<meta property="og:site_name" th:content="${metaInfo.browserTitle}" content="한세공식몰 스타일24"/>
 	
 	<!-- 추천솔루션 meta -->
+	<meta property="eg:type" content="product" />
 	<meta property="eg:cuid" content="" />
 	<meta property="eg:itemId" content="" />
 	<meta property="eg:itemName" content="" />

+ 18 - 0
src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html

@@ -19,6 +19,7 @@
 <body>
 <th:block layout:fragment="content">
 <script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.mobile.js.url')}" src="" charset="UTF-8"></script>
+<script type="text/javascript" src="https://wcs.naver.net/wcslog.js"></script>
 <form id="nPayForm" name="nPayForm"></form>
 <form name="cartForm" id="cartForm" method="post">
 		<input type="hidden" name="mode">
@@ -181,6 +182,14 @@
 						<div style="margin-top:10px;">
 							<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
 								<script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.mobile.js.url')}" src="" charset="UTF-8"></script>
+
+								<script th:inline="javascript">
+									if(!wcs_add) var wcs_add = {};
+									wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+									wcs.inflow("style24.com");
+									wcs_do();
+								</script>
+
 								<script type="text/javascript" >
 									/*버튼설정*/
 									naver.NaverPayButton.apply({
@@ -1520,6 +1529,15 @@
 /*]]>*/
 </script>
 <script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
+
+<!-- 네이버페이 랜딩페이지 -->
+<script th:inline="javascript">
+	if(!wcs_add) var wcs_add = {};
+	wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+	wcs.inflow("style24.com");
+	wcs_do();
+</script>
+
 <!-- 광고 스크립트 -->
 <th:block th:replace="~{mob/common/advertisements/GoodsDetailScriptsMob :: scripts}"></th:block>
 <!-- //광고 스크립트 -->

+ 9 - 0
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html

@@ -18,6 +18,7 @@
  -->
 <body>
 <th:block layout:fragment="content">
+	<script type="text/javascript" src="https://wcs.naver.net/wcslog.js"></script>
 	<form id="nPayForm" name="nPayForm"></form>
 	<form name="cartForm" id="cartForm" method="post">
 		<input type="hidden" name="mode">
@@ -961,6 +962,14 @@
 					<div style="margin-top:10px;">
 						<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
 							<script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.mobile.js.url')}" src="" charset="UTF-8"></script>
+
+							<script th:inline="javascript">
+								if(!wcs_add) var wcs_add = {};
+								wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+								wcs.inflow("style24.com");
+								wcs_do();
+							</script>
+
 							<script type="text/javascript" >
 								/*버튼설정*/
 								naver.NaverPayButton.apply({

+ 19 - 10
src/main/webapp/WEB-INF/views/mob/mypage/MypageCancelFormMob.html

@@ -60,16 +60,25 @@
 											<div class="name" th:text="${cancel.goodsNm}"></div>
 										</div>
 										<div class="od_opt">
+											<!-- 세트상품일때 -->
+											<th:block th:if="${cancel.goodsType} == 'G056_S'">
+												<th:block th:each="option , index2 : ${cancel.colorNmArr}">
+													<div class="option">
+														<em th:text="${cancel.itemNmArr[index2.index]}"></em>
+														<em th:text="${option}"></em>
+														<em th:text="${cancel.optCd2Arr[index2.index]}"></em>
+													</div>
+												</th:block>
+											</th:block>
+											<!-- //세트상품일때 -->
+											<!-- 단품상품일때 -->
+											<th:block th:unless="${cancel.goodsType} == 'G056_S'">
 												<div class="option">
-													<th:block th:if="${cancel.goodsType == 'G056_S'}" th:each="option, status : ${cancel.colorNmArr}">
-														<em th:text="${cancel.itemNmArr[status.index]}"></em>
-														<em th:text="${cancel.optCd2Arr[status.index]}"></em>
-													</th:block>
-													<th:block th:unless="${cancel.goodsType == 'G056_S'}">
-														<em th:text="${cancel.colorNm}"></em>
-														<em th:text="${cancel.optCd2}"></em>
-													</th:block>
+													<em th:text="${cancel.colorNm}"></em>
+													<em th:text="${cancel.optCd2}"></em>
 												</div>
+											</th:block>
+											<!-- //단품상품일때 -->
 										</div>
 										<div class="od_calc">
 											<th:block th:if="${(cancel.ordAmt - cancel.cnclRtnAmt) > (cancel.realOrdAmt + cancel.pntDcAmt + cancel.gfcdUseAmt)}">
@@ -96,7 +105,7 @@
 							</div>
 							<th:block th:if="${#lists.size(cancelList.cancelList) == status.count}">
 								<div class="goods_txt">
-									<p class="cf_txt cf_desc">취소하실 상품의 수량을 선택하신 후<br>취소 신청을 하실 수 있습니다.</p>
+									<p class="cf_txt cf_desc">취소하실 상품의 수량을 선택하신 후<br>주문 취소를 하실 수 있습니다.</p>
 								</div>
 							</th:block>
 						</div>
@@ -210,7 +219,7 @@
 			</div>
 			<div class="popup_con">
 				<div class="button_list clear">
-					<button type="button" qty=0 onclick="fnChangeCancelQty(this);"><span>수량 0개</span></button>
+					<button type="button" class="on" qty=0 onclick="fnChangeCancelQty(this);"><span>수량 0개</span></button>
 					<th:block th:each="num : ${#numbers.sequence(1, cancel.ordCanChgQty)}">
 						<button type="button" th:qty="${num}" onclick="fnChangeCancelQty(this);"><span th:text="|수량 ${num}개|"></span></button>
 					</th:block>

+ 1 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreCancelDetailFormMob.html

@@ -64,6 +64,7 @@
 										<div class="option">
 											<th:block th:if="${cancelDtl.goodsType == 'G056_S'}">
 												<th:block th:each="option, status : ${cancelDtl.colorNmArr}">
+													<em th:text="${cancelDtl.itemNmArr[status.index]}"></em>
 													<em th:text="${option}"></em>
 													<em th:text="${cancelDtl.optCd2Arr[status.index]}"></em>
 												</th:block>

+ 31 - 16
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreExchangeDetailFormMob.html

@@ -68,33 +68,48 @@
 										<div class="name" th:text="${exchangeDtl.goodsNm}"></div>
 									</div>
 									<div class="od_opt">
-										<div class="option">
-											<th:block th:if="${exchangeDtl.goodsType == 'G056_S'}">
-												<th:block th:each="option, status : ${exchangeDtl.colorNmArr}">
+										<!-- 세트상품일때 -->
+										<th:block th:if="${exchangeDtl.goodsType} == 'G056_S'">
+											<th:block th:each="option , index2 : ${exchangeDtl.colorNmArr}">
+												<div class="option">
+													<em th:text="${exchangeDtl.itemNmArr[index2.index]}"></em>
 													<em th:text="${option}"></em>
-													<em th:text="${exchangeDtl.optCd2Arr[status.index]}"></em>
-												</th:block>
+													<em th:text="${exchangeDtl.optCd2Arr[index2.index]}"></em>
+												</div>
 											</th:block>
-											<th:block th:unless="${exchangeDtl.goodsType == 'G056_S'}">
+										</th:block>
+										<!-- //세트상품일때 -->
+										<!-- 단품상품일때 -->
+										<th:block th:unless="${exchangeDtl.goodsType} == 'G056_S'">
+											<div class="option">
 												<em th:text="${exchangeDtl.colorNm}"></em>
 												<em th:text="${exchangeDtl.optCd2}"></em>
-											</th:block>
-										</div>
+											</div>
+										</th:block>
+										<!-- //단품상품일때 -->
 									</div>
 									<div class="od_exchange_opt">
 										<span>교환옵션</span>
 										<div class="option">
-											<th:block th:if="${exchangeDtl.goodsType == 'G056_S'}">
-												<th:block th:each="option, status : ${exchangeDtl.chgColorNmArr}">
-													<em th:text="${exchangeDtl.chgItemNmArr[status.index]}"></em>
-													<em th:text="${option}"></em>
-													<em th:text="${exchangeDtl.chgOptCd2Arr[status.index]}"></em>
+											<!-- 세트상품일때 -->
+											<th:block th:if="${exchangeDtl.goodsType} == 'G056_S'">
+												<th:block th:each="option , index2 : ${exchangeDtl.chgColorNmArr}">
+													<div class="option">
+														<em th:text="${exchangeDtl.chgItemNmArr[index2.index]}"></em>
+														<em th:text="${option}"></em>
+														<em th:text="${exchangeDtl.chgOptCd2Arr[index2.index]}"></em>
+													</div>
 												</th:block>
 											</th:block>
-											<th:block th:unless="${exchangeDtl.goodsType == 'G056_S'}">
-												<em th:text="${exchangeDtl.chgColorNm}"></em>
-												<em th:text="${exchangeDtl.chgOptCd2}"></em>
+											<!-- //세트상품일때 -->
+											<!-- 단품상품일때 -->
+											<th:block th:unless="${exchangeDtl.goodsType} == 'G056_S'">
+												<div class="option">
+													<em th:text="${exchangeDtl.chgColorNm}"></em>
+													<em th:text="${exchangeDtl.chgOptCd2}"></em>
+												</div>
 											</th:block>
+											<!-- //단품상품일때 -->
 										</div>
 									</div>
 									<div class="od_calc">

+ 10 - 67
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreListFormMob.html

@@ -60,7 +60,7 @@
 		<div class="popup_con">
 			<div class="button_list clear">
 				<button type="button" onclick="fnSetSearchPeriod(1);" period="1"><span>최근 1개월</span></button>
-				<button type="button" onclick="fnSetSearchPeriod(3);" period="3"><span>최근 3개월</span></button>
+				<button type="button" class="on" onclick="fnSetSearchPeriod(3);" period="3"><span>최근 3개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(6);" period="6"><span>최근 6개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(9);" period="9"><span>최근 9개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(12);" period="12"><span>최근 12개월</span></button>
@@ -116,61 +116,23 @@ $(document).ready(function() {
 		, "stDate" 			: ""
 		, "edDate" 			: ""
 	}
-	
-	// AJAX 변수 설정
-	//jsonData = JSON.stringify(jsonObj);
-	
-	// 전체페이지 구하기
-	//totalPage 	= parseInt(totalCnt / 10);
-	//remainList 	= totalCnt % 10; 
-	
-	// 나머지가 있으면 전체 페이지 + 1
-	//if (remainList > 0) {
-	//	totalPage = totalPage + 1;
-	//}
-	
-	//fnSetSearchPeriod(3);
-	
-	//var win = $(window);
-	 
-	// Each time the user scrolls
-	//win.scroll(function() {
-		// End of the document reached?
-		//if ($(document).height() - win.height() == win.scrollTop()) {
-		//	if (scrollTemp) {
-		//		var tempPage 	= parseInt($("#searchForm input[name=pageNo]").val());
-		//		tempPage 		= tempPage + 1;
-		//
-		//		if (totalPage > tempPage) {
-		//			scrollTemp = false;
-		//			fnGetInfiniteScrollDataList(tempPage);
-		//		}
-		//	}
-		//}
-	//});
-	
-	
 });
 
 //사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
 $(window).on("pageshow", function(event) {
 	if ((event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
-		var historyData = sessionStorage.getItem(document.location.href);
-		if (historyData != null) {
-			historyData = JSON.parse(historyData);
-		} else {
-			historyData = {};
-		}
+		// 캐쉬페이징
 	} else {
 		// 2021.05.28 인피니티스크롤 초기화
 		fnMypageCreListInfiniteScrollInit();
-		fnGetInfiniteScrollDataList();
 	}
+	
+	// 데이터 조회
+	gagaInfiniteScroll.getHistory();
 });
 
 //취소,반품,교환목록조회
 var fnGetInfiniteScrollDataList = function() {
-	
 	// 2021.05.28 페이지 기능 수정
 	if (pageNo <= totalPage) {
 		pageNo++;
@@ -222,26 +184,6 @@ var fnGetInfiniteScrollDataList = function() {
 			});
 		}
 	}, true);
-	//$.ajax( {
-	//	type		: "POST",
-	//	url 		: '/mypage/cre/listInfo',
-	//	data		: JSON.stringify(jsonObj),
-	//	dataType 	: 'html',
-	//	beforeSend : function(xhr, settings) {
-	//		xhr.setRequestHeader("AJAX"			, "true");
-	//		xhr.setRequestHeader('Accept'		, 'application/json');
-	//		xhr.setRequestHeader('Content-Type'	, 'application/json');
-	//	},
-	//	success 	: function(result) {
-	//		if (result != null) {
-	//			$("#listBox").css("display", "block");
-	//			$("#listBox").append(result);
-	//			
-	//			scrollTemp = true;
-	//			
-	//		}
-	//	}
-	//});
 }
 
 //검색기간 버튼 클릭 이벤트 처리
@@ -263,7 +205,7 @@ var fnSetSearchPeriod = function(period) {
 	$('#searchForm input[name=stDate]').val(stDate);
 	
 	// 인피니티스크롤 초기화
-	fnMypageOrderListInfiniteScrollInit();
+	fnMypageCreListInfiniteScrollInit();
 	
 	$("#odDatePop .popup_con button").removeClass("on");
 	
@@ -279,6 +221,7 @@ var fnSetSearchPeriod = function(period) {
 		}
 	});
 	
+	// 데이터 조회
 	fnGetInfiniteScrollDataList();
 	
 	// 팝업닫기
@@ -306,7 +249,9 @@ $('#odStatusPop .popup_con .button_list .ordDtlStat').on('click', function() {
 	});
 	
 	// 인피니티스크롤 초기화
-	fnMypageOrderListInfiniteScrollInit();
+	fnMypageCreListInfiniteScrollInit();
+	
+	// 데이터 조회
 	fnGetInfiniteScrollDataList();
 	
 	// 팝업닫기
@@ -359,8 +304,6 @@ var getTotalPage = function(param) {
 		totalPage = totalPage + 1;
 	}
 }
-
-$(function() { gagaInfiniteScroll.getHistory(); });
 /*]]>*/
 </script>
 

+ 5 - 3
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreListInfoMob.html

@@ -20,7 +20,7 @@
 					<div class="goods_section">
 						<div class="goods_status">
 							<p class="dlvr_staus" th:text="${cre.chgStatNm}"></p>
-							<p class="dlvr_desc"><th:block th:text="|${cre.chgDate} ${cre.chgTime}|"></p>
+							<p class="dlvr_desc" th:text="|${cre.chgDate} ${cre.chgTime}|"></p>
 						</div>
 						<div class="goods_detail">
 							<a href="javascript:void(0)" th:attr="goodsCd=${cre.goodsCd}" onclick="fnGoToGoodsDetail(this)">
@@ -50,6 +50,7 @@
 										<th:block th:if="${cre.goodsType} == 'G056_S'">
 											<th:block th:each="option , index2 : ${cre.colorNmArr}">
 												<div class="option">
+													<em th:text="${cre.itemNmArr[index2.index]}"></em>
 													<em th:text="${option}"></em>
 													<em th:text="${cre.optCd2Arr[index2.index]}"></em>
 												</div>
@@ -76,8 +77,9 @@
 													<th:block th:if="${cre.goodsType} == 'G056_S'">
 														<th:block th:each-="option, index2, ${exchange.colorNmArr}">
 															<div class="option">
-																<em th:text="${exchange.itemNmArr[index2]}"></em>
-																<em th:text="${exchange.optCd2Arr[index2]}"></em>
+																<em th:text="${exchange.itemNmArr[index2.index]}"></em>
+																<em th:text="${option}"></em>
+																<em th:text="${exchange.optCd2Arr[index2.index]}"></em>
 															</div>
 														</th:block>
 													</th:block>

+ 44 - 35
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreReturnDetailFormMob.html

@@ -66,18 +66,25 @@
 										<div class="name" th:text="${returnDtl.goodsNm}"></div>
 									</div>
 									<div class="od_opt">
-										<div class="option">
-											<th:block th:if="${returnDtl.goodsType == 'G056_S'}">
-												<th:block th:each="option, status : ${returnDtl.colorNmArr}">
+										<!-- 세트상품일때 -->
+										<th:block th:if="${returnDtl.goodsType} == 'G056_S'">
+											<th:block th:each="option , index2 : ${returnDtl.colorNmArr}">
+												<div class="option">
+													<em th:text="${returnDtl.itemNmArr[index2.index]}"></em>
 													<em th:text="${option}"></em>
-													<em th:text="${returnDtl.optCd2Arr[status.index]}"></em>
-												</th:block>
+													<em th:text="${returnDtl.optCd2Arr[index2.index]}"></em>
+												</div>
 											</th:block>
-											<th:block th:unless="${returnDtl.goodsType == 'G056_S'}">
+										</th:block>
+										<!-- //세트상품일때 -->
+										<!-- 단품상품일때 -->
+										<th:block th:unless="${returnDtl.goodsType} == 'G056_S'">
+											<div class="option">
 												<em th:text="${returnDtl.colorNm}"></em>
 												<em th:text="${returnDtl.optCd2}"></em>
-											</th:block>
-										</div>
+											</div>
+										</th:block>
+										<!-- //단품상품일때 -->
 									</div>
 									<div class="od_calc">
 										<p class="price">
@@ -136,36 +143,38 @@
 				</div>
 			</div>
 		</div>
-		<div class="inner">
-			<div class="tbl_wrap">
-				<div class="tbl_tit"> 
-					<h3>반품 회수지 주소</h3>
-					<th:block th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}">
-						<button type="button" id="btn_adrsChange_pop" class="btn_popup" onclick="fnChangeDeliveryAddr();">
-							<span>회수지 변경</span>
-						</button>
-					</th:block>
-				</div>
-				<div class="tbl">
-					<div class="ship_info">
-						<dl>
-							<div class="name">
-								<dt><span class="sr-only">배송지명</span></dt>
-								<dd id="chgerNm" th:text="${oneData.chgerNm}"></dd>
-							</div>
-							<div class="addr">
-								<dt><span class="sr-only">배송주소</span></dt>
-								<dd id="chgerAddr" th:text="|${oneData.chgerBaseAddr} ${oneData.chgerDtlAddr}|"></dd>
-							</div>
-							<div class="phone">
-								<dt><span class="sr-only">휴대폰 번호</span></dt>
-								<dd id="chgerPhnno" th:text="${oneData.chgerPhnno}"></dd>
-							</div>
-						</dl>
+		<th:block th:if="${oneData.wdGb == 'W'}">
+			<div class="inner">
+				<div class="tbl_wrap">
+					<div class="tbl_tit"> 
+						<h3>반품 회수지 주소</h3>
+						<th:block th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}">
+							<button type="button" id="btn_adrsChange_pop" class="btn_popup" onclick="fnChangeDeliveryAddr();">
+								<span>회수지 변경</span>
+							</button>
+						</th:block>
+					</div>
+					<div class="tbl">
+						<div class="ship_info">
+							<dl>
+								<div class="name">
+									<dt><span class="sr-only">배송지명</span></dt>
+									<dd id="chgerNm" th:text="${oneData.chgerNm}"></dd>
+								</div>
+								<div class="addr">
+									<dt><span class="sr-only">배송주소</span></dt>
+									<dd id="chgerAddr" th:text="|${oneData.chgerBaseAddr} ${oneData.chgerDtlAddr}|"></dd>
+								</div>
+								<div class="phone">
+									<dt><span class="sr-only">휴대폰 번호</span></dt>
+									<dd id="chgerPhnno" th:text="${oneData.chgerPhnno}"></dd>
+								</div>
+							</dl>
+						</div>
 					</div>
 				</div>
 			</div>
-		</div>
+		</th:block>
 		<th:block th:if="${not #strings.isEmpty(oneData.wdInvoiceNo) and not #strings.isEmpty(oneData.shipCompNm)}">
 			<div class="inner">
 				<div class="tbl_wrap">

+ 2 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageExchangeFormMob.html

@@ -61,6 +61,7 @@
 											<th:block th:if="${exchange.goodsType == 'G056_S'}" th:each="option, status : ${exchange.colorNmArr}">
 												<div class="option">
 													<em th:text="${exchange.itemNmArr[status.index]}"></em>
+													<em th:text="${option}"></em>
 													<em th:text="${exchange.optCd2Arr[status.index]}"></em>
 												</div>
 											</th:block>
@@ -79,6 +80,7 @@
 												<span>교환옵션</span>
 												<div class="option">
 													<em th:text="${exchange.itemNmArr[status.index]}"></em>
+													<em th:text="${option}"></em>
 													<em th:text="${exchange.optCd2Arr[status.index]}"></em>
 												</div>
 											</th:block>

+ 10 - 37
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListFormMob.html

@@ -136,7 +136,7 @@
 		<div class="popup_con">
 			<div class="button_list clear">
 				<button type="button" onclick="fnSetSearchPeriod(1);" period="1"><span>최근 1개월</span></button>
-				<button type="button" onclick="fnSetSearchPeriod(3);" period="3"><span>최근 3개월</span></button>
+				<button type="button" class="on" onclick="fnSetSearchPeriod(3);" period="3"><span>최근 3개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(6);" period="6"><span>최근 6개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(9);" period="9"><span>최근 9개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(12);" period="12"><span>최근 12개월</span></button>
@@ -176,7 +176,6 @@ var totalCnt		= [[${totalCnt}]];
 var totalPage		= 0;
 var remainList		= 0;
 var jsonObj 		= {};
-var scrollTemp		= true;
 var mypageMainYn	= [[${mypageMainYn}]];
 let customerInfo 	= [[${customerInfo}]];
 var pageNo			= 0;
@@ -195,9 +194,6 @@ $(document).ready(function() {
 		, "custNo"			: custNo
 	}
 	
-	// AJAX 변수 설정
-	jsonData = JSON.stringify(jsonObj);
-	
 	// 마이페이지 메인화면일때 초기 1개월 조회
 	if (mypageMainYn == 'Y') {
 		// 타이틀명
@@ -218,31 +214,17 @@ $(document).ready(function() {
 //사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
 $(window).on("pageshow", function(event) {
 	if ((event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
-		var historyData = sessionStorage.getItem(document.location.href);
-		if (historyData != null) {
-			historyData = JSON.parse(historyData);
-		} else {
-			historyData = {};
-		}
+		// 캐쉬페이징
 	} else {
-		// 마이페이지 메인화면일때 초기 1개월 조회
-		if (mypageMainYn == 'Y') {
-			jsonObj.pageSize = 1;
-			jsonObj.pageUnit = 1;
-			fnSetSearchPeriod(1);
-		}
-		// 마이페이지 주문목록화면일때
-		else {
-			// 2021.05.28 인피니티스크롤 초기화
-			fnMypageOrderListInfiniteScrollInit();
-			fnGetInfiniteScrollDataList();
-		}
+		// 인피니티스크롤 초기화
+		fnMypageOrderListInfiniteScrollInit();
 	}
+	
+	gagaInfiniteScroll.getHistory();
 });
 
 // 주문 목록 조회
 var fnGetInfiniteScrollDataList = function() {
-	
 	// 2021.05.28 마이페이지메인 주문목록 확인
 	if (mypageMainYn == 'Y') {
 		jsonObj.pageSize = 1;
@@ -341,6 +323,7 @@ var fnSetSearchPeriod = function(period) {
 		}
 	});
 	
+	// 데이터 조회
 	fnGetInfiniteScrollDataList();
 	
 	// 팝업닫기
@@ -369,13 +352,15 @@ $('#odStatusPop .popup_con .button_list .ordDtlStat').on('click', function() {
 	
 	// 인피니티스크롤 초기화
 	fnMypageOrderListInfiniteScrollInit();
+	
+	// 데이터 조회
 	fnGetInfiniteScrollDataList();
 	
 	// 팝업닫기
 	$(".popup_close").trigger("click");
 });
 
-// 2021.04.21 인피니티 스크롤 기능 구현전 추후 수정
+// 인피니티 스크롤 초기화
 var fnMypageOrderListInfiniteScrollInit = function(){
 	sessionStorage.removeItem(document.location.href);
 	
@@ -384,8 +369,6 @@ var fnMypageOrderListInfiniteScrollInit = function(){
 	// History 초기화
 	$("#listBox").html("");
 }
-
-$(function() { gagaInfiniteScroll.getHistory(); });
 </script>
 
 <script>
@@ -466,16 +449,6 @@ $(function() { gagaInfiniteScroll.getHistory(); });
 		cfnGoToPage(_PAGE_CUSTOMER_GRADE_BENEFIT);
 	}
 	
-	// 인피니티 스크롤 초기화
-	var fnOrderListInfiniteScrollInit = function (){
-		sessionStorage.removeItem(document.location.href);
-		$("#listBox").html("");
-	}
-	
-	var fnOrderListSearch = function (){
-		gagaInfiniteScroll.getHistory();
-	}
-	
 	var getTotalPage = function(param) {
 		// 전체페이지 구하기
 		totalPage 	= parseInt(param / 10);

+ 19 - 4
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListInfoMob.html

@@ -78,10 +78,25 @@
 										<div class="name" th:text="${ordDtl.goodsNm}"></div>
 									</div>
 									<div class="od_opt">
-										<div class="option" th:each="colorNm, index : ${ordDtl.colorNmArr}">
-											<em th:text="${colorNm}"></em>
-											<em th:text="${ordDtl.optCd2Arr[index.index]}"></em>
-										</div>
+										<!-- 세트상품일때 -->
+										<th:block th:if="${ordDtl.goodsType} == 'G056_S'">
+											<th:block th:each="option , index : ${ordDtl.colorNmArr}">
+												<div class="option">
+													<em th:text="${ordDtl.itemNmArr[index.index]}"></em>
+													<em th:text="${option}"></em>
+													<em th:text="${ordDtl.optCd2Arr[index.index]}"></em>
+												</div>
+											</th:block>
+										</th:block>
+										<!-- //세트상품일때 -->
+										<!-- 단품상품일때 -->
+										<th:block th:unless="${ordDtl.goodsType} == 'G056_S'">
+											<div class="option">
+												<em th:text="${ordDtl.colorNm}"></em>
+												<em th:text="${ordDtl.optCd2}"></em>
+											</div>
+										</th:block>
+										<!-- //단품상품일때 -->
 									</div>
 									<div class="od_calc">
 										<!-- 판매금액과 할인금액이 같으면 표시 안함 -->

+ 16 - 7
src/main/webapp/WEB-INF/views/mob/mypage/MypageReturnFormMob.html

@@ -61,16 +61,25 @@
 											<div class="name" th:text="${return.goodsNm}"></div>
 										</div>
 										<div class="od_opt">
-											<div class="option">
-												<th:block th:if="${return.goodsType == 'G056_S'}" th:each="option, status : ${return.colorNmArr}">
-													<em th:text="${return.itemNmArr[status.index]}"></em>
-													<em th:text="${return.optCd2Arr[status.index]}"></em>
+											<!-- 세트상품일때 -->
+											<th:block th:if="${return.goodsType} == 'G056_S'">
+												<th:block th:each="option , index2 : ${return.colorNmArr}">
+													<div class="option">
+														<em th:text="${return.itemNmArr[index2.index]}"></em>
+														<em th:text="${option}"></em>
+														<em th:text="${return.optCd2Arr[index2.index]}"></em>
+													</div>
 												</th:block>
-												<th:block th:unless="${return.goodsType == 'G056_S'}">
+											</th:block>
+											<!-- //세트상품일때 -->
+											<!-- 단품상품일때 -->
+											<th:block th:unless="${return.goodsType} == 'G056_S'">
+												<div class="option">
 													<em th:text="${return.colorNm}"></em>
 													<em th:text="${return.optCd2}"></em>
-												</th:block>
-											</div>
+												</div>
+											</th:block>
+											<!-- //단품상품일때 -->
 										</div>
 										<div class="od_calc">
 											<th:block th:if="${(return.ordAmt - return.cnclRtnAmt) > (return.realOrdAmt + return.pntDcAmt + return.gfcdUseAmt)}">

+ 19 - 10
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCancelFormMob.html

@@ -59,16 +59,25 @@
 											<div class="name" th:text="${cancel.goodsNm}"></div>
 										</div>
 										<div class="od_opt">
+											<!-- 세트상품일때 -->
+											<th:block th:if="${cancel.goodsType} == 'G056_S'">
+												<th:block th:each="option , index2 : ${cancel.colorNmArr}">
+													<div class="option">
+														<em th:text="${cancel.itemNmArr[index2.index]}"></em>
+														<em th:text="${option}"></em>
+														<em th:text="${cancel.optCd2Arr[index2.index]}"></em>
+													</div>
+												</th:block>
+											</th:block>
+											<!-- //세트상품일때 -->
+											<!-- 단품상품일때 -->
+											<th:block th:unless="${cancel.goodsType} == 'G056_S'">
 												<div class="option">
-													<th:block th:if="${cancel.goodsType == 'G056_S'}" th:each="option, status : ${cancel.colorNmArr}">
-														<em th:text="${cancel.itemNmArr[status.index]}"></em>
-														<em th:text="${cancel.optCd2Arr[status.index]}"></em>
-													</th:block>
-													<th:block th:unless="${cancel.goodsType == 'G056_S'}">
-														<em th:text="${cancel.colorNm}"></em>
-														<em th:text="${cancel.optCd2}"></em>
-													</th:block>
+													<em th:text="${cancel.colorNm}"></em>
+													<em th:text="${cancel.optCd2}"></em>
 												</div>
+											</th:block>
+											<!-- //단품상품일때 -->
 										</div>
 										<div class="od_calc">
 											<th:block th:if="${(cancel.ordAmt - cancel.cnclRtnAmt) > (cancel.realOrdAmt + cancel.pntDcAmt + cancel.gfcdUseAmt)}">
@@ -95,7 +104,7 @@
 							</div>
 							<th:block th:if="${#lists.size(cancelList.cancelList) == status.count}">
 								<div class="goods_txt">
-									<p class="cf_txt cf_desc">취소하실 상품의 수량을 선택하신 후<br>취소 신청을 하실 수 있습니다.</p>
+									<p class="cf_txt cf_desc">취소하실 상품의 수량을 선택하신 후<br>주문 취소를 하실 수 있습니다.</p>
 								</div>
 							</th:block>
 						</div>
@@ -209,7 +218,7 @@
 			</div>
 			<div class="popup_con">
 				<div class="button_list clear">
-					<button type="button" qty=0 onclick="fnChangeCancelQty(this);"><span>수량 0개</span></button>
+					<button type="button" qty=0 class="on" onclick="fnChangeCancelQty(this);"><span>수량 0개</span></button>
 					<th:block th:each="num : ${#numbers.sequence(1, cancel.ordCanChgQty)}">
 						<button type="button" th:qty="${num}" onclick="fnChangeCancelQty(this);"><span th:text="|수량 ${num}개|"></span></button>
 					</th:block>

+ 1 - 0
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreCancelDetailFormMob.html

@@ -59,6 +59,7 @@
 										<div class="option">
 											<th:block th:if="${cancelDtl.goodsType == 'G056_S'}">
 												<th:block th:each="option, status : ${cancelDtl.colorNmArr}">
+													<em th:text="${cancelDtl.itemNmArr[status.index]}"></em>
 													<em th:text="${option}"></em>
 													<em th:text="${cancelDtl.optCd2Arr[status.index]}"></em>
 												</th:block>

+ 31 - 16
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreExchangeDetailFormMob.html

@@ -63,33 +63,48 @@
 										<div class="name" th:text="${exchangeDtl.goodsNm}"></div>
 									</div>
 									<div class="od_opt">
-										<div class="option">
-											<th:block th:if="${exchangeDtl.goodsType == 'G056_S'}">
-												<th:block th:each="option, status : ${exchangeDtl.colorNmArr}">
+										<!-- 세트상품일때 -->
+										<th:block th:if="${exchangeDtl.goodsType} == 'G056_S'">
+											<th:block th:each="option , index2 : ${exchangeDtl.colorNmArr}">
+												<div class="option">
+													<em th:text="${exchangeDtl.itemNmArr[index2.index]}"></em>
 													<em th:text="${option}"></em>
-													<em th:text="${exchangeDtl.optCd2Arr[status.index]}"></em>
-												</th:block>
+													<em th:text="${exchangeDtl.optCd2Arr[index2.index]}"></em>
+												</div>
 											</th:block>
-											<th:block th:unless="${exchangeDtl.goodsType == 'G056_S'}">
+										</th:block>
+										<!-- //세트상품일때 -->
+										<!-- 단품상품일때 -->
+										<th:block th:unless="${exchangeDtl.goodsType} == 'G056_S'">
+											<div class="option">
 												<em th:text="${exchangeDtl.colorNm}"></em>
 												<em th:text="${exchangeDtl.optCd2}"></em>
-											</th:block>
-										</div>
+											</div>
+										</th:block>
+										<!-- //단품상품일때 -->
 									</div>
 									<div class="od_exchange_opt">
 										<span>교환옵션</span>
 										<div class="option">
-											<th:block th:if="${exchangeDtl.goodsType == 'G056_S'}">
-												<th:block th:each="option, status : ${exchangeDtl.chgColorNmArr}">
-													<em th:text="${exchangeDtl.chgItemNmArr[status.index]}"></em>
-													<em th:text="${option}"></em>
-													<em th:text="${exchangeDtl.chgOptCd2Arr[status.index]}"></em>
+											<!-- 세트상품일때 -->
+											<th:block th:if="${exchangeDtl.goodsType} == 'G056_S'">
+												<th:block th:each="option , index2 : ${exchangeDtl.chgColorNmArr}">
+													<div class="option">
+														<em th:text="${exchangeDtl.chgItemNmArr[index2.index]}"></em>
+														<em th:text="${option}"></em>
+														<em th:text="${exchangeDtl.chgOptCd2Arr[index2.index]}"></em>
+													</div>
 												</th:block>
 											</th:block>
-											<th:block th:unless="${exchangeDtl.goodsType == 'G056_S'}">
-												<em th:text="${exchangeDtl.chgColorNm}"></em>
-												<em th:text="${exchangeDtl.chgOptCd2}"></em>
+											<!-- //세트상품일때 -->
+											<!-- 단품상품일때 -->
+											<th:block th:unless="${exchangeDtl.goodsType} == 'G056_S'">
+												<div class="option">
+													<em th:text="${exchangeDtl.chgColorNm}"></em>
+													<em th:text="${exchangeDtl.chgOptCd2}"></em>
+												</div>
 											</th:block>
+											<!-- //단품상품일때 -->
 										</div>
 									</div>
 									<div class="od_calc">

+ 118 - 92
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreListFormMob.html

@@ -17,7 +17,7 @@
 <th:block layout:fragment="content">
 
 <!-- 취소/반품/교환목록조회 -->
-<form id="searchForm" name="searchForm" th:action="@{'/mypage/cre/list'}" th:method="post">
+<form id="searchForm" name="searchForm" th:action="@{'/noMember/cre/list'}" th:method="post">
 	<input type="hidden" name="pageNo" 		value=1 />
 	<input type="hidden" name="pageSize" 	value=5 />
 	<input type="hidden" name="pageUnit" 	value=10 />
@@ -75,7 +75,7 @@
 		<div class="popup_con">
 			<div class="button_list clear">
 				<button type="button" onclick="fnSetSearchPeriod(1);" period="1"><span>최근 1개월</span></button>
-				<button type="button" onclick="fnSetSearchPeriod(3);" period="3"><span>최근 3개월</span></button>
+				<button type="button" class="on" onclick="fnSetSearchPeriod(3);" period="3"><span>최근 3개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(6);" period="6"><span>최근 6개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(9);" period="9"><span>최근 9개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(12);" period="12"><span>최근 12개월</span></button>
@@ -106,12 +106,18 @@
 </div>		
 <!-- //주문상태 선택 팝업 -->
 
+<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
+<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
 <script th:inline="javascript">
 //AJAX 로드를 위한 변수 설정
 let ordNo			= [[${ordNo}]];
 let ordNm			= [[${ordNm}]];
 let ordPhnno		= [[${ordPhnno}]];
-let totalCnt 	= [[${totalCnt}]];
+var totalCnt		= [[${totalCnt}]];
+var totalPage		= 0;
+var remainList		= 0;
+var pageNo			= 0;
+var jsonObj 		= {};
 
 /*<![CDATA[*/
 $(document).ready(function() {
@@ -129,76 +135,28 @@ $(document).ready(function() {
 		, "ordNm"			: ordNm
 		, "ordPhnno"		: ordPhnno
 	}
-	
-	// AJAX 변수 설정
-	jsonData = JSON.stringify(jsonObj);
-	
-	// 전체페이지 구하기
-	totalPage 	= parseInt(totalCnt / 10);
-	remainList 	= totalCnt % 10; 
-	
-	// 나머지가 있으면 전체 페이지 + 1
-	if (remainList > 0) {
-		totalPage = totalPage + 1;
+});
+
+//사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
+$(window).on("pageshow", function(event) {
+	if ((event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
+		// 캐쉬페이징
+	} else {
+		// 2021.05.28 인피니티스크롤 초기화
+		fnMypageCreListInfiniteScrollInit();
 	}
 	
-	fnSetSearchPeriod(3);
-	
-	var win = $(window);
-	 
-	// Each time the user scrolls
-	win.scroll(function() {
-		// End of the document reached?
-		if ($(document).height() - win.height() == win.scrollTop()) {
-			if (scrollTemp) {
-				var tempPage 	= parseInt($("#searchForm input[name=pageNo]").val());
-				tempPage 		= tempPage + 1;
-				
-				if (totalPage > tempPage) {
-					scrollTemp = false;
-					fnGetInfiniteScrollDataList(tempPage);
-				}
-			}
-		}
-	});
-	
-	// 주문상세상태코드 셀렉트박스 변경 이벤트
-	$('#odStatusPop .popup_con .button_list .ordDtlStat').on('click', function() {
-		let code = $(this).attr('code');
-		$('#searchForm input[name=chgStat]').val(code);
-		jsonObj.chgStat = code;
-
-		$("#odStatusPop .popup_con button").removeClass("on");
-
-		// 상태값설정
-		$("#odStatusPop .popup_con button").each(function() {
-			var tempCode = $(this).attr("code");
-			if (tempCode == code) {
-				$(this).addClass("on");
-
-				// 상태값 명칭
-				var ordDtlStatNm = $(this).find("span").text();
-				$(".container .my_order .od_status_btn").text(ordDtlStatNm);
-			}
-		});
-		
-		// 리헷
-		$("#listBox").html("");
-		
-		// 초기화설정
-		fnGetInfiniteScrollDataList(1);
-
-		// 팝업 닫기
-		$(".popup_close").trigger("click");
-	});
+	// 데이터 조회
+	gagaInfiniteScroll.getHistory();
 });
 
 //취소,반품,교환목록조회
-var fnGetInfiniteScrollDataList = function(pageNo) {
-
-	// 페이지번호가 없으면 1페이지 설정
-	if (pageNo == null || pageNo == 0) {
-		pageNo = 1;
+var fnGetInfiniteScrollDataList = function() {
+	// 2021.05.28 페이지 기능 수정
+	if (pageNo <= totalPage) {
+		pageNo++;
+	} else {
+		return false;
 	}
 	
 	// 페이지설정
@@ -207,27 +165,44 @@ var fnGetInfiniteScrollDataList = function(pageNo) {
 	jsonObj.pageNo = pageNo;
 	jsonObj.stDate = $("#searchForm input[name=stDate]").val();
 	jsonObj.edDate = $("#searchForm input[name=edDate]").val();
+	jsonObj.chgStat	= $('#searchForm input[name=chgStat]').val();
 	
-	$.ajax( {
-		type		: "POST",
-		url 		: '/noMember/cre/listInfo',
-		data		: JSON.stringify(jsonObj),
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-		},
-		success 	: function(result) {
-			if (result != null) {
-				$("#listBox").css("display", "block");
-				$("#listBox").append(result);
-				
-				scrollTemp = true;
-				
-			}
+	gagajf.ajaxJsonSubmit('/noMember/cre/list/pre/info', JSON.stringify(jsonObj), function(result) {
+		let totalCount 	= result.paging.totalCount;
+		totalCnt 		= totalCount;
+		
+		getTotalPage(totalCount);
+		
+		gagaInfiniteScroll.pageStatus.totalCount = totalCount;
+		
+		let ordChgSqArr = [];
+		$.each(result.creList, function(idx, item) {
+			ordChgSqArr.push(item.ordChgSq);
+		});
+		
+		jsonObj.ordChgSqArr = ordChgSqArr;
+		
+		if (ordChgSqArr.length > 0) {
+			$.ajax({
+				type: "POST",
+				url: '/noMember/cre/list/info',
+				data: JSON.stringify(jsonObj),
+				dataType: 'html',
+				beforeSend: function (xhr, settings) {
+					xhr.setRequestHeader("AJAX", "true");
+					xhr.setRequestHeader('Accept', 'application/json');
+					xhr.setRequestHeader('Content-Type', 'application/json');
+				},
+				success: function (result) {
+					if (result != null) {
+						// 2021.05.28
+						$("#listBox").css("display", "block");
+						gagaInfiniteScroll.draw(result);
+					}
+				}
+			});
 		}
-	});
+	}, true);
 }
 
 //검색기간 버튼 클릭 이벤트 처리
@@ -248,11 +223,8 @@ var fnSetSearchPeriod = function(period) {
 	$('#searchForm input[name=edDate]').val(edDate);
 	$('#searchForm input[name=stDate]').val(stDate);
 	
-	// 리헷
-	$("#listBox").html("");
-	
-	// 초기화설정
-	fnGetInfiniteScrollDataList(1);
+	// 인피니티스크롤 초기화
+	fnMypageCreListInfiniteScrollInit();
 	
 	$("#odDatePop .popup_con button").removeClass("on");
 	
@@ -267,9 +239,52 @@ var fnSetSearchPeriod = function(period) {
 			$(".container .my_order .od_date_btn").text(periodStr);
 		}
 	});
+	
+	// 데이터 조회
+	fnGetInfiniteScrollDataList();
+	
+	// 팝업 닫기
+	$(".popup_close").trigger("click");
+}
 
+// 주문상세상태코드 셀렉트박스 변경 이벤트
+$('#odStatusPop .popup_con .button_list .ordDtlStat').on('click', function() {
+	let code = $(this).attr('code');
+	$('#searchForm input[name=chgStat]').val(code);
+	jsonObj.chgStat = code;
+	
+	$("#odStatusPop .popup_con button").removeClass("on");
+	
+	// 상태값설정
+	$("#odStatusPop .popup_con button").each(function() {
+		var tempCode = $(this).attr("code");
+		if (tempCode == code) {
+			$(this).addClass("on");
+			
+			// 상태값 명칭
+			var ordDtlStatNm = $(this).find("span").text();
+			$(".container .my_order .od_status_btn").text(ordDtlStatNm);
+		}
+	});
+	
+	// 인피니티스크롤 초기화
+	fnMypageCreListInfiniteScrollInit();
+	
+	// 데이터 조회
+	fnGetInfiniteScrollDataList();
+	
 	// 팝업 닫기
 	$(".popup_close").trigger("click");
+});
+
+// 인피니티 스크롤 초기화
+var fnMypageCreListInfiniteScrollInit = function(){
+	sessionStorage.removeItem(document.location.href);
+	
+	pageNo = 0;
+	
+	// History 초기화
+	$("#listBox").html("");
 }
 
 // 취반교 상세 페이지 이동
@@ -295,6 +310,17 @@ var fnGoToCreDetail = function(param) {
 
 	cfnGoToPage(_frontUrl + url);
 }
+
+var getTotalPage = function(param) {
+	// 전체페이지 구하기
+	totalPage 	= parseInt(param / 10);
+	remainList 	= param % 10;
+	
+	// 나머지가 있으면 전체 페이지 + 1
+	if (remainList > 0) {
+		totalPage = totalPage + 1;
+	}
+}
 /*]]>*/
 </script>
 

+ 44 - 35
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreReturnDetailFormMob.html

@@ -61,18 +61,25 @@
 										<div class="name" th:text="${returnDtl.goodsNm}"></div>
 									</div>
 									<div class="od_opt">
-										<div class="option">
-											<th:block th:if="${returnDtl.goodsType == 'G056_S'}">
-												<th:block th:each="option, status : ${returnDtl.colorNmArr}">
+										<!-- 세트상품일때 -->
+										<th:block th:if="${returnDtl.goodsType} == 'G056_S'">
+											<th:block th:each="option , index2 : ${returnDtl.colorNmArr}">
+												<div class="option">
+													<em th:text="${returnDtl.itemNmArr[index2.index]}"></em>
 													<em th:text="${option}"></em>
-													<em th:text="${returnDtl.optCd2Arr[status.index]}"></em>
-												</th:block>
+													<em th:text="${returnDtl.optCd2Arr[index2.index]}"></em>
+												</div>
 											</th:block>
-											<th:block th:unless="${returnDtl.goodsType == 'G056_S'}">
+										</th:block>
+										<!-- //세트상품일때 -->
+										<!-- 단품상품일때 -->
+										<th:block th:unless="${returnDtl.goodsType} == 'G056_S'">
+											<div class="option">
 												<em th:text="${returnDtl.colorNm}"></em>
 												<em th:text="${returnDtl.optCd2}"></em>
-											</th:block>
-										</div>
+											</div>
+										</th:block>
+										<!-- //단품상품일때 -->
 									</div>
 									<div class="od_calc">
 										<p class="price">
@@ -126,36 +133,38 @@
 				</div>
 			</div>
 		</div>
-		<div class="inner">
-			<div class="tbl_wrap">
-				<div class="tbl_tit"> 
-					<h3>반품 회수지 주소</h3>
-					<th:block th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}">
-						<button type="button" id="btn_adrsChange_pop" class="btn_popup" onclick="fnChangeDeliveryAddr();">
-							<span>회수지 변경</span>
-						</button>
-					</th:block>
-				</div>
-				<div class="tbl">
-					<div class="ship_info">
-						<dl>
-							<div class="name">
-								<dt><span class="sr-only">배송지명</span></dt>
-								<dd id="chgerNm" th:text="${oneData.chgerNm}"></dd>
-							</div>
-							<div class="addr">
-								<dt><span class="sr-only">배송주소</span></dt>
-								<dd id="chgerAddr" th:text="|${oneData.chgerBaseAddr} ${oneData.chgerDtlAddr}|"></dd>
-							</div>
-							<div class="phone">
-								<dt><span class="sr-only">휴대폰 번호</span></dt>
-								<dd id="chgerPhnno" th:text="${oneData.chgerPhnno}"></dd>
-							</div>
-						</dl>
+		<th:block th:if="${oneData.wdGb == 'W'}">
+			<div class="inner">
+				<div class="tbl_wrap">
+					<div class="tbl_tit"> 
+						<h3>반품 회수지 주소</h3>
+						<th:block th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}">
+							<button type="button" id="btn_adrsChange_pop" class="btn_popup" onclick="fnChangeDeliveryAddr();">
+								<span>회수지 변경</span>
+							</button>
+						</th:block>
+					</div>
+					<div class="tbl">
+						<div class="ship_info">
+							<dl>
+								<div class="name">
+									<dt><span class="sr-only">배송지명</span></dt>
+									<dd id="chgerNm" th:text="${oneData.chgerNm}"></dd>
+								</div>
+								<div class="addr">
+									<dt><span class="sr-only">배송주소</span></dt>
+									<dd id="chgerAddr" th:text="|${oneData.chgerBaseAddr} ${oneData.chgerDtlAddr}|"></dd>
+								</div>
+								<div class="phone">
+									<dt><span class="sr-only">휴대폰 번호</span></dt>
+									<dd id="chgerPhnno" th:text="${oneData.chgerPhnno}"></dd>
+								</div>
+							</dl>
+						</div>
 					</div>
 				</div>
 			</div>
-		</div>
+		</th:block>
 		<th:block th:if="${not #strings.isEmpty(oneData.wdInvoiceNo) and not #strings.isEmpty(oneData.shipCompNm)}">
 			<div class="inner">
 				<div class="tbl_wrap">

+ 2 - 0
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberExchangeFormMob.html

@@ -60,6 +60,7 @@
 											<th:block th:if="${exchange.goodsType == 'G056_S'}" th:each="option, status : ${exchange.colorNmArr}">
 												<div class="option">
 													<em th:text="${exchange.itemNmArr[status.index]}"></em>
+													<em th:text="${option}"></em>
 													<em th:text="${exchange.optCd2Arr[status.index]}"></em>
 												</div>
 											</th:block>
@@ -78,6 +79,7 @@
 												<span>교환옵션</span>
 												<div class="option">
 													<em th:text="${exchange.itemNmArr[status.index]}"></em>
+													<em th:text="${option}"></em>
 													<em th:text="${exchange.optCd2Arr[status.index]}"></em>
 												</div>
 											</th:block>

+ 66 - 130
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberOrderListFormMob.html

@@ -76,7 +76,7 @@
 		<div class="popup_con">
 			<div class="button_list clear">
 				<button type="button" onclick="fnSetSearchPeriod(1);" period="1"><span>최근 1개월</span></button>
-				<button type="button" onclick="fnSetSearchPeriod(3);" period="3"><span>최근 3개월</span></button>
+				<button type="button" class="on" onclick="fnSetSearchPeriod(3);" period="3"><span>최근 3개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(6);" period="6"><span>최근 6개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(9);" period="9"><span>최근 9개월</span></button>
 				<button type="button" onclick="fnSetSearchPeriod(12);" period="12"><span>최근 12개월</span></button>
@@ -105,6 +105,9 @@
 	</div>
 </div>
 <!-- //주문상태 선택 팝업 -->
+
+<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
+<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
 <script th:inline="javascript">
 // 변수설정
 let ordNo			= [[${ordNo}]];
@@ -114,14 +117,9 @@ var totalCnt		= [[${totalCnt}]];
 var totalPage		= 0;
 var remainList		= 0;
 var jsonObj 		= {};
-var scrollTemp		= true;
 
 // 초기설정
 $(document).ready(function() {
-	
-	// 인피니티스크롤 초기화
-	//fnGoodsReviewInfiniteScrollInit();
-
 	// 타이틀명
 	$('#htopTitle').text('마이페이지');
 
@@ -137,76 +135,27 @@ $(document).ready(function() {
 		, "ordNm"			: ordNm
 		, "ordPhnno"		: ordPhnno
 	}
-	
-	// AJAX 변수 설정
-	jsonData = JSON.stringify(jsonObj);
-
-	// 전체페이지 구하기
-	totalPage 	= parseInt(totalCnt / 10);
-	remainList 	= totalCnt % 10;
+});
 
-	// 나머지가 있으면 전체 페이지 + 1
-	if (remainList > 0) {
-		totalPage = totalPage + 1;
+//사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
+$(window).on("pageshow", function(event) {
+	if ((event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
+		// 캐쉬페이징
+	} else {
+		// 인피니티스크롤 초기화
+		fnMypageOrderListInfiniteScrollInit();
 	}
-
-	fnSetSearchPeriod(3);
-
-	var win = $(window);
-
-	// Each time the user scrolls
-	win.scroll(function() {
-		// End of the document reached?
-		if ($(document).height() - win.height() == win.scrollTop()) {
-			if (scrollTemp) {
-				var tempPage 	= parseInt($("#searchForm input[name=pageNo]").val());
-				tempPage 		= tempPage + 1;
-
-				if (totalPage > tempPage) {
-					scrollTemp = false;
-					fnGetInfiniteScrollDataList(tempPage);
-				}
-			}
-		}
-	});
-
-	// 주문상세상태코드 셀렉트박스 변경 이벤트
-	$('#odStatusPop .popup_con .button_list .ordDtlStat').on('click', function() {
-		let code = $(this).attr('code');
-		$('#searchForm input[name=ordDtlStat]').val(code);
-		jsonObj.ordDtlStat = code;
-
-		$("#odStatusPop .popup_con button").removeClass("on");
-
-		// 상태값설정
-		$("#odStatusPop .popup_con button").each(function() {
-			var tempCode = $(this).attr("code");
-			if (tempCode == code) {
-				$(this).addClass("on");
-
-				// 상태값 명칭
-				var ordDtlStatNm = $(this).find("span").text();
-				$(".container .my_order .od_status_btn").text(ordDtlStatNm);
-			}
-		});
-
-		// 리헷
-		$("#listBox").html("");
-
-		// 초기화설정
-		fnGetInfiniteScrollDataList(1);
-
-		// 팝업 닫기
-		$(".popup_close").trigger("click");
-	});
+	
+	gagaInfiniteScroll.getHistory();
 });
 
 // 주문 목록 조회
-var fnGetInfiniteScrollDataList = function(pageNo) {
-
-	// 페이지번호가 없으면 1페이지 설정
-	if (pageNo == null || pageNo == 0) {
-		pageNo = 1;
+var fnGetInfiniteScrollDataList = function() {
+	// 2021.05.28 페이지 기능 수정
+	if (pageNo <= totalPage) {
+		pageNo++;
+	} else {
+		return false;
 	}
 	
 	// 페이지설정
@@ -215,35 +164,15 @@ var fnGetInfiniteScrollDataList = function(pageNo) {
 	jsonObj.pageNo = pageNo;
 	jsonObj.stDate = $("#searchForm input[name=stDate]").val();
 	jsonObj.edDate = $("#searchForm input[name=edDate]").val();
-	
-	//$.ajax( {
-	//	type		: "POST",
-	//	url 		: '/noMember/order/listInfo',
-	//	data		: JSON.stringify(jsonObj),
-	//	dataType 	: 'html',
-	//	beforeSend : function(xhr, settings) {
-	//		xhr.setRequestHeader("AJAX"			, "true");
-	//		xhr.setRequestHeader('Accept'		, 'application/json');
-	//		xhr.setRequestHeader('Content-Type'	, 'application/json');
-	//	},
-	//	success 	: function(result) {
-	//		if (result != null) {
-	//			$("#listBox").css("display", "block");
-	//			$("#listBox").append(result);
-	//			scrollTemp = true;
-	//			
-	//			// 인피니티 스크롤 기억기능
-	//			//gagaInfiniteScroll.draw(result);
-	//			//gagaInfiniteScroll.draw('not');
-	//		}
-	//	}
-	//});
+	jsonObj.ordDtlStat = $('#searchForm input[name=ordDtlStat]').val();
 	
 	gagajf.ajaxJsonSubmit('/noMember/order/list/pre/info', JSON.stringify(jsonObj), function(result) {
 		let totalCount = result.paging.totalCount;
 		totalCnt = totalCount;
+		
 		getTotalPage(totalCount);
-		//gagaInfiniteScroll.pageStatus.totalCount = totalCount;
+		
+		gagaInfiniteScroll.pageStatus.totalCount = totalCount;
 		
 		let ordNoList = [];
 		$.each(result.ordNoList, function(idx, item) {
@@ -266,8 +195,7 @@ var fnGetInfiniteScrollDataList = function(pageNo) {
 				success: function (result) {
 					if (result != null) {
 						$("#listBox").css("display", "block");
-						$("#listBox").append(result);
-						scrollTemp = true;
+						gagaInfiniteScroll.draw(result);
 					}
 				}
 			});
@@ -293,11 +221,8 @@ var fnSetSearchPeriod = function(period) {
 	$('#searchForm input[name=edDate]').val(edDate);
 	$('#searchForm input[name=stDate]').val(stDate);
 	
-	// 리헷
-	$("#listBox").html("");
-	
-	// 초기화설정
-	fnGetInfiniteScrollDataList(1);
+	// 인피니티스크롤 초기화
+	fnMypageOrderListInfiniteScrollInit();
 	
 	$("#odDatePop .popup_con button").removeClass("on");
 	
@@ -312,42 +237,53 @@ var fnSetSearchPeriod = function(period) {
 			$(".container .my_order .od_date_btn").text(periodStr);
 		}
 	});
-
+	
+	// 데이터 조회
+	fnGetInfiniteScrollDataList();
+	
 	// 팝업닫기
 	$(".popup_close").trigger("click");
 }
 
-// 2021.04.21 인피니티 스크롤 기능 구현전 추후 수정
-// 인피니트 스크롤 초기화
-/*
-var fnGoodsReviewInfiniteScrollInit = function(){
-	// sessionStorage.removeItem(document.location.href);
-	History.replaceState(null, null);
-	gagaInfiniteScroll.pageStatus = {
-			  pageNum 			: []      // [0,1,2...] 로드된 페이지 (Array)
-			, loadPage 			: 0      // 로드할 페이지
-			, loadAlign 		: 'not' // 로드 상태(prev, next, not)
-			, historyScroll 	: 0 //
-			, nowPage 			: null    // 현재 페이지
-			, pageUrl 			: {       // page url
-				
-			}
-	}
+// 주문상세상태코드 셀렉트박스 변경 이벤트
+$('#odStatusPop .popup_con .button_list .ordDtlStat').on('click', function() {
+	let code = $(this).attr('code');
+	$('#searchForm input[name=ordDtlStat]').val(code);
+	jsonObj.ordDtlStat = code;
 	
-	//History 초기화
-	$("#listBox").html("");
-}
+	$("#odStatusPop .popup_con button").removeClass("on");
+	
+	// 상태값설정
+	$("#odStatusPop .popup_con button").each(function() {
+		var tempCode = $(this).attr("code");
+		if (tempCode == code) {
+			$(this).addClass("on");
+			
+			// 상태값 명칭
+			var ordDtlStatNm = $(this).find("span").text();
+			$(".container .my_order .od_status_btn").text(ordDtlStatNm);
+		}
+	});
+	
+	// 인피니티스크롤 초기화
+	fnMypageOrderListInfiniteScrollInit();
+	
+	// 데이터 조회
+	fnGetInfiniteScrollDataList();
+	
+	// 팝업 닫기
+	$(".popup_close").trigger("click");
+});
 
-var fnDrawInfiniteScrollData = function (result){
-	let totalCnt 								= result.totalCnt;
-	gagaInfiniteScroll.pageStatus.totalCount 	= result.totalCnt;
+// 인피니티 스크롤 초기화
+var fnMypageOrderListInfiniteScrollInit = function(){
+	sessionStorage.removeItem(document.location.href);
 	
-	var htm = fnCreateGoodsList(result);
-	gagaInfiniteScroll.draw(htm);
+	pageNo = 0;
+	
+	// History 초기화
+	$("#listBox").html("");
 }
-
-$(function() { gagaInfiniteScroll.getHistory(); });
-*/
 </script>
 
 <script>

+ 16 - 7
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberReturnFormMob.html

@@ -60,16 +60,25 @@
 											<div class="name" th:text="${return.goodsNm}"></div>
 										</div>
 										<div class="od_opt">
-											<div class="option">
-												<th:block th:if="${return.goodsType == 'G056_S'}" th:each="option, status : ${return.colorNmArr}">
-													<em th:text="${return.itemNmArr[status.index]}"></em>
-													<em th:text="${return.optCd2Arr[status.index]}"></em>
+											<!-- 세트상품일때 -->
+											<th:block th:if="${return.goodsType} == 'G056_S'">
+												<th:block th:each="option , index2 : ${return.colorNmArr}">
+													<div class="option">
+														<em th:text="${return.itemNmArr[index2.index]}"></em>
+														<em th:text="${option}"></em>
+														<em th:text="${return.optCd2Arr[index2.index]}"></em>
+													</div>
 												</th:block>
-												<th:block th:unless="${return.goodsType == 'G056_S'}">
+											</th:block>
+											<!-- //세트상품일때 -->
+											<!-- 단품상품일때 -->
+											<th:block th:unless="${return.goodsType} == 'G056_S'">
+												<div class="option">
 													<em th:text="${return.colorNm}"></em>
 													<em th:text="${return.optCd2}"></em>
-												</th:block>
-											</div>
+												</div>
+											</th:block>
+											<!-- //단품상품일때 -->
 										</div>
 										<div class="od_calc">
 											<th:block th:if="${(return.ordAmt - return.cnclRtnAmt) > (return.realOrdAmt + return.pntDcAmt + return.gfcdUseAmt)}">

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/order/OrderAddPaymentFormMob.html

@@ -67,7 +67,7 @@
 															<div class="info_box">
 																<div class="od_name">
 																	<div class="brand">
-																		<span th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></span>
+																		<span th:text="${goods.brandGroupNm"></span>
 																	</div>
 																	<div class="name" th:text="${goods.goodsNm}"></div>
 																</div>

+ 16 - 0
src/main/webapp/WEB-INF/views/mob/order/OrderCompleteMob.html

@@ -15,6 +15,7 @@
  -->
 <body>
 <th:block layout:fragment="content">
+<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>
 <main role="" id="" class="container od">
 	<section class="content completed">
 		<div class="inner wide">
@@ -549,6 +550,21 @@ x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
 </script>
 <!-- //2021.05.27 주문완료 로그스크립트 삽입 -->
 
+<!--네이버페이 전환스크립트를 이용하여 전환값 설정-->
+<script th:inline="javascript">
+	var _nasa={};
+	if (window.wcs) _nasa["cnv"] = wcs.cnv("1","[[${realOrdSumAmt}]]");
+</script>
+<!--위 스크립트를 통해 설정된 전환값과 본 페이지의 로그를 서버에 전송-->
+<script th:inline="javascript">
+	if (!wcs_add) var wcs_add = {};
+	wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+	if (!_nasa) var _nasa = {};
+	if (window.wcs) {
+		wcs.inflow("style24.com");
+		wcs_do(_nasa); //서버로 로그 전송
+	}
+</script>
 </th:block>
 </body>
 </html>

+ 23 - 21
src/main/webapp/WEB-INF/views/mob/order/OrderGiftInfoMob.html

@@ -28,27 +28,18 @@
 					</a>
 				</div>
 				<div class="fold_cont" style="display: none;">
-					<div class="tabWrap">
-						<ul class="tabIndex">
-							<!-- <li><a href="javascript:void(0);"><span>연락처 불러오기</span></a></li> -->
-							<li class="active"><a href="javascript:void(0);"><span>직접입력</span></a></li>
-						</ul>
-						<div class="tabContents">
-							<div class="tab_cont active">
-								<div class="form_field">
-									<div class="input_wrap">
-										<input type="text" name="recipNm" class="form_control" value="" maxlength="10" placeholder="받는분">
-									</div>
-									<br>
-									<div class="input_wrap">
-										<input type="text" name="recipPhnno" class="form_control" value="" minlength="10" maxlength="14" placeholder="받으실분 휴대폰번호">
-										<p class="desc_txt">선물이 타인에게 전송될수 있으니 전화번호를 받으실분 연락처를 정확하게 입력해주세요.</p>
-									</div>
-									<div class="textarea_wrap">
-										<textarea class="doc_review" name="giftMsg" id="giftMsg" placeholder="선물 메시지 입력&#13;&#10;(미 입력시 ‘감사합니다’로 발송됩니다.)"></textarea>
-										<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/200</p>
-									</div>
-								</div>
+					<div class="inner"><!-- 210419_ : 모바일웹에서만 .inner 사용 -->
+						<div class="form_field">
+							<div class="input_wrap">
+								<input type="text" name="recipNm" class="form_control" value="" maxlength="10" placeholder="받는 분">
+							</div>
+							<div class="input_wrap">
+								<input type="text" name="recipPhnno" class="form_control" value="" minlength="10" maxlength="14" placeholder="받는 분 휴대폰번호">
+								<p class="desc_txt">선물이 타인에게 전송될수 있으니 받으실분 연락처를 정확하게 입력해주세요.</p> <!-- 210421_삭제 : 전화번호를 텍스트 삭제 -->
+							</div>
+							<div class="textarea_wrap">
+								<textarea class="doc_review" name="review" id="" placeholder="선물 메시지 입력&#13;&#10;(미 입력시 ‘감사합니다’로 발송됩니다.)"></textarea>
+								<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/200</p>
 							</div>
 						</div>
 					</div>
@@ -83,5 +74,16 @@ $(document).ready( function() {
 $(document).on("keyup", "#orderGiftInfo input[name=recipPhnno]", function() { 
 	$(this).val( $(this).val().replace(/[^0-9]/g, "").replace(/(^02|^0505|^1[0-9]{3}|^0[0-9]{2})([0-9]+)?([0-9]{4})$/,"$1-$2-$3").replace("--", "-") ); 
 });
+
+//선물 받으실 분 직접입력 글자 제한
+$('.doc_review').keyup(function (e){
+	var content = $(this).val();
+	$('#review_cnt').html(content.length);
+	if (content.length > 200){
+		mcxDialog.alert("최대 200자까지 입력 가능합니다."); //210420_수정 : 시스템 alert -> dialog 변경.
+		$(this).val(content.substring(0, 200));
+		$('#review_cnt').html("200");
+	}
+});
 </script>
 </html>

+ 2 - 7
src/main/webapp/WEB-INF/views/mob/planning/PlanningEventAttendFormMob.html

@@ -328,22 +328,17 @@ $(document).ready(function() {
 	if (!cfCheckLogin()) {
 		$(".day").html("<span>0</span>일");
 	}else{
+		$('.day').html('<span>' + (custAttendList.length +1) + '</span>일');
+		$("#td_"+date).attr("class","today"); 
 		$.each(custAttendList, function(idx, item) {
-			$('.day').html('<span>' + custAttendList.length + '</span>일');
 			if(item.entryDt == date){
 				$("#td_"+date).attr("class","complete");
-			}else{
-				$("#td_"+date).attr("class","today"); 
 			}
 		})
 	}
 	
 	
 	
-	
-	
-	
-	
 	$(".title").html("<strong>"+month+"월</strong> 출석체크");
 	
 	//공유 버튼 토글 

+ 16 - 0
src/main/webapp/WEB-INF/views/web/cart/CartListFormWeb.html

@@ -24,6 +24,7 @@
     <!-- payment.js -->
     <script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
     <script type="text/javascript" src="/biz/payment.js"></script>
+	<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>
 
 	<!--  container -->
 	<div id="container" class="container od">
@@ -615,6 +616,21 @@
 		});
     });
 </script>
+<!--네이버페이 전환스크립트를 이용하여 전환값 설정-->
+<script th:inline="javascript">
+	var _nasa={};
+	if (window.wcs) _nasa["cnv"] = wcs.cnv("3","[[${loginCustNo}]]");
+</script>
+<!--위 스크립트를 통해 설정된 전환값과 본 페이지의 로그를 서버에 전송-->
+<script th:inline="javascript">
+	if (!wcs_add) var wcs_add = {};
+	wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+	if (!_nasa) var _nasa = {};
+	if (window.wcs) {
+		wcs.inflow("style24.com");
+		wcs_do(_nasa); //서버로 로그 전송
+	}
+</script>
 </th:block>
 </body>
 </html>

+ 12 - 0
src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html

@@ -1910,6 +1910,18 @@ function noneImg(noneSrc){
 /*]]>*/
 </script>
 
+<!-- 네이버페이 유입 공통 적용 스크립트 , 모든 페이지에 노출되도록 설치. 단 전환페이지 설정값보다 항상 하단에 위치해야함 -->
+<script type="text/javascript" src="//wcs.naver.net/wcslog.js"> </script>
+<script type="text/javascript">
+	if (!wcs_add) var wcs_add={};
+	wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+	if (!_nasa) var _nasa={};
+	if(window.wcs){
+		wcs.inflow("style24.com");
+		wcs_do(_nasa);
+	}
+</script>
+
 </footer>
 
 </html>

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

@@ -20,6 +20,7 @@
 	<meta property="og:site_name" th:content="${metaInfo.browserTitle}" content="한세공식몰 스타일24"/>
 	
 	<!-- 추천솔루션 meta -->
+	<meta property="eg:type" content="product" />
 	<meta property="eg:cuid" content="" />
 	<meta property="eg:itemId" content="" />
 	<meta property="eg:itemName" content="" />
@@ -124,11 +125,11 @@
 		_eglqueue.push(['setVar', 'cuid', eglqueueCuid]);
 		_eglqueue.push(['setVar', 'userId', hCustId]);
 		_eglqueue.push(['track', 'visit']);
-		(function (s, x) {
+		/* (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 (Visit) */
 
 		// 로그인 성공 시 - 시작

+ 88 - 75
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html

@@ -21,6 +21,8 @@
 <script src="/ux/pc/js/ion.rangeSlider.min.js"></script>
 <script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
 <script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.pc.js.url')}" src="" charset="UTF-8"></script>
+<script type="text/javascript" src="https://wcs.naver.net/wcslog.js"></script>
+
 <form id="nPayForm" name="nPayForm"></form>
 <div id="container" class="container pd deal" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
 	<div class="wrap">
@@ -256,6 +258,13 @@
 
 							<div style="margin-top:10px;">
 								<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
+									<script th:inline="javascript">
+										if(!wcs_add) var wcs_add = {};
+										wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+										wcs.inflow("style24.com");
+										wcs_do();
+									</script>
+
 									<script type="text/javascript" >
 										//<![CDATA[
 										/*버튼설정*/
@@ -365,6 +374,8 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 	
+	
+	
 	let socialSq = [[${goodsInfo.socialSq}]];	
 	let socialEddt = [[${goodsInfo.socialEddt}]];
 	
@@ -1056,7 +1067,6 @@
 	
 	$(document).ready( function() {
 		
-		
 		//상품 대표설명 > 우측 상품정보 
 		/* 딜 옵션선택 후 다음 옵션 활성화 */
 		var detail_deal_option01 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt_item');
@@ -1094,79 +1104,6 @@
 			$(' .option_box .result_item .number_count .minus').addClass('min_val');
 		} 
 
-		// 광고 스크립트용
-		var goodsNavigation = [[${goodsNavigation}]];
-		var cate1Nm = "";
-		var cate2Nm = "";
-		var cate3Nm = "";
-		var cate4Nm = "";
-		var cate5Nm = "";
-		if (!gagajf.isNull(goodsNavigation)) {
-			cate1Nm = goodsNavigation.cate1Nm;
-			cate2Nm = goodsNavigation.cate2Nm;
-			cate3Nm = goodsNavigation.cate3Nm;
-			cate4Nm = goodsNavigation.cate4Nm;
-			cate5Nm = goodsNavigation.cate3Nm;
-			
-			if (!gagajf.isNull(cate1Nm)) {
-				cateNm += cate1Nm;
-			}
-			if (!gagajf.isNull(cate2Nm)) {
-				cateNm += ' > ' + cate2Nm;
-			}
-			if (!gagajf.isNull(cate3Nm)) {
-				cateNm += ' > ' + cate3Nm;
-			}
-			if (!gagajf.isNull(cate4Nm)) {
-				cateNm += ' > ' + cate4Nm;
-			}
-			if (!gagajf.isNull(cate5Nm)) {
-				cateNm += ' > ' + cate5Nm;
-			}
-		}
-		// 광고 스크립트용
-		
-		var snsGoodsImg = _uploadGoodsUrl + [[${goodsInfo.sysImgNm}]];
-		var snsUrl = location.protocol + _PAGE_GOODS_DETAIL + params.goodsCd +'&colorCd =' + params.colorCd  ;
-		var snsGoodsFullNm = [[${goodsInfo.goodsFullNm}]];
-		
-		<!-- 페이스북 카카오스토리 연동 관련 메타태그 -->
-		$("meta[property='og:url']").attr('content', snsUrl);
-		$("meta[property='og:title']").attr('content', snsGoodsFullNm);
-		$("meta[property='og:description']").attr('content', snsGoodsFullNm);
-		$("meta[property='og:image']").attr('content', snsGoodsImg);
-
-		<!-- 트위터 관련 메타태그 -->
-		$("meta[name='twitter:url']").attr('content', snsUrl);
-		$("meta[name='twitter:title']").attr('content', snsGoodsFullNm);
-		$("meta[name='twitter:description']").attr('content', snsGoodsFullNm);
-		$("meta[name='twitter:image']").attr('content', snsGoodsImg);
-
-		// 추천솔류션 meta 설정
-		$("meta[property='eg:type']").attr('content',"product");
-		$("meta[property='eg:cuid']").attr('content',eglqueueCuid);
-		$("meta[property='eg:itemId']").attr('content', [[${goodsInfo.goodsCd}]] );
-		$("meta[property='eg:itemName']").attr('content',[[${goodsInfo.goodsFullNm}]] );
-		$("meta[property='eg:itemImage']").attr('content', snsGoodsImg);
-		$("meta[property='eg:itemUrl']").attr('content',snsUrl);
-		$("meta[property='eg:originalPrice']").attr('content',[[${goodsInfo.listPrice}]]);
-		$("meta[property='eg:salePrice']").attr('content',[[${goodsInfo.currPrice}]]);
-		$("meta[property='eg:category1']").attr('content',cate1Nm);
-		$("meta[property='eg:category2']").attr('content',cate2Nm);
-		$("meta[property='eg:category3']").attr('content',cate3Nm);
-		$("meta[property='eg:category4']").attr('content',cate4Nm);
-		$("meta[property='eg:category5']").attr('content',cate5Nm);
-		$("meta[property='eg:brandId']").attr('content',[[${goodsInfo.brandGroupNo}]]);
-		$("meta[property='eg:brandName']").attr('content',[[${goodsInfo.brandGroupNm}]]);
-		$("meta[property='eg:regDate']").attr('content',[[${goodsInfo.regDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
-		$("meta[property='eg:updateDate']").attr('content',[[${goodsInfo.updDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
-		$("meta[property='eg:stock']").attr('content',"");
-		$("meta[property='eg:state']").attr('content',[[${goodsInfo.goodsStatNm}]]);
-		$("meta[property='eg:description']").attr('content',null);
-		$("meta[property='eg:extraImage']").attr('content',null);
-		$("meta[property='eg:locale']").attr('content',"KR");
-		$("meta[property='eg:isNew']").attr('content',([[${goodsInfo.formalGb}]] == 'G009_10')? 'True' :'False');
-		$("meta[property='eg:etc1']").attr('content', [[${goodsInfo.selfGoodsYn}]]);
 		
 		
 		// 탭별 선택시 기본 상품 설정
@@ -1214,12 +1151,88 @@ function buy_nc_req(cartSqArr) {
 			}
 		}
 	});
+	
 }
 	
+	// 광고 스크립트용
+	var goodsNavigation = [[${goodsNavigation}]];
+	var cate1Nm = "";
+	var cate2Nm = "";
+	var cate3Nm = "";
+	var cate4Nm = "";
+	var cate5Nm = "";
+	if (!gagajf.isNull(goodsNavigation)) {
+		cate1Nm = goodsNavigation.cate1Nm;
+		cate2Nm = goodsNavigation.cate2Nm;
+		cate3Nm = goodsNavigation.cate3Nm;
+		cate4Nm = goodsNavigation.cate4Nm;
+		cate5Nm = goodsNavigation.cate3Nm;
+		
+		if (!gagajf.isNull(cate1Nm)) {
+			cateNm += cate1Nm;
+		}
+		if (!gagajf.isNull(cate2Nm)) {
+			cateNm += ' > ' + cate2Nm;
+		}
+		if (!gagajf.isNull(cate3Nm)) {
+			cateNm += ' > ' + cate3Nm;
+		}
+		if (!gagajf.isNull(cate4Nm)) {
+			cateNm += ' > ' + cate4Nm;
+		}
+		if (!gagajf.isNull(cate5Nm)) {
+			cateNm += ' > ' + cate5Nm;
+		}
+	}
+	// 광고 스크립트용
+	
+	var snsGoodsImg = _uploadGoodsUrl + [[${goodsInfo.sysImgNm}]];
+	var snsUrl = location.protocol + _PAGE_GOODS_DETAIL + params.goodsCd;
+	if (typeof (params.colorCd) != 'undefined') snsUrl += "&colorCd=" + params.colorCd;
+	var snsGoodsFullNm = [[${goodsInfo.goodsFullNm}]];
+	
+	<!-- 페이스북 카카오스토리 연동 관련 메타태그 -->
+	$("meta[property='og:url']").attr('content', snsUrl);
+	$("meta[property='og:title']").attr('content', snsGoodsFullNm);
+	$("meta[property='og:description']").attr('content', snsGoodsFullNm);
+	$("meta[property='og:image']").attr('content', snsGoodsImg);
+	
+	<!-- 트위터 관련 메타태그 -->
+	$("meta[name='twitter:url']").attr('content', snsUrl);
+	$("meta[name='twitter:title']").attr('content', snsGoodsFullNm);
+	$("meta[name='twitter:description']").attr('content', snsGoodsFullNm);
+	$("meta[name='twitter:image']").attr('content', snsGoodsImg);
+	
+	// 추천솔류션 meta 설정
+	$("meta[property='eg:type']").attr('content',"product");
+	$("meta[property='eg:cuid']").attr('content',eglqueueCuid);
+	$("meta[property='eg:itemId']").attr('content', [[${goodsInfo.goodsCd}]] );
+	$("meta[property='eg:itemName']").attr('content',[[${goodsInfo.goodsFullNm}]] );
+	$("meta[property='eg:itemImage']").attr('content', snsGoodsImg);
+	$("meta[property='eg:itemUrl']").attr('content',snsUrl);
+	$("meta[property='eg:originalPrice']").attr('content',[[${goodsInfo.listPrice}]]);
+	$("meta[property='eg:salePrice']").attr('content',[[${goodsInfo.currPrice}]]);
+	$("meta[property='eg:category1']").attr('content',cate1Nm);
+	$("meta[property='eg:category2']").attr('content',cate2Nm);
+	$("meta[property='eg:category3']").attr('content',cate3Nm);
+	$("meta[property='eg:category4']").attr('content',cate4Nm);
+	$("meta[property='eg:category5']").attr('content',cate5Nm);
+	$("meta[property='eg:brandId']").attr('content',[[${goodsInfo.brandGroupNo}]]);
+	$("meta[property='eg:brandName']").attr('content',[[${goodsInfo.brandGroupNm}]]);
+	$("meta[property='eg:regDate']").attr('content',[[${goodsInfo.regDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
+	$("meta[property='eg:updateDate']").attr('content',[[${goodsInfo.updDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
+	$("meta[property='eg:stock']").attr('content',"");
+	$("meta[property='eg:state']").attr('content',[[${goodsInfo.goodsStatNm}]]);
+	$("meta[property='eg:description']").attr('content',null);
+	$("meta[property='eg:extraImage']").attr('content',null);
+	$("meta[property='eg:locale']").attr('content',"KR");
+	$("meta[property='eg:isNew']").attr('content',([[${goodsInfo.formalGb}]] == 'G009_10')? 'True' :'False');
+	$("meta[property='eg:etc1']").attr('content', [[${goodsInfo.selfGoodsYn}]]);
 /*]]>*/
 </script>
+
 <!-- 광고 스크립트 -->
-<!-- <th:block th:replace="~{web/common/advertisements/GoodsDetailScriptsWeb :: scripts}"></th:block> -->
+<th:block th:replace="~{web/common/advertisements/GoodsDetailScriptsWeb :: scripts}"></th:block>
 <!-- //광고 스크립트 -->
 </th:block>
 

+ 90 - 79
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -21,6 +21,7 @@
 <form id="nPayForm" name="nPayForm"></form>
 <div id="container" class="container pd" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
 <script src="//developers.kakao.com/sdk/js/kakao.min.js"></script>
+<script type="text/javascript" src="https://wcs.naver.net/wcslog.js"></script>
 	<!-- <th:block th:include="~{web/goods/GoodsIncludeFormWeb :: goodsNaviForm}"></th:block> -->
 	
 	<div class="wrap">
@@ -374,6 +375,14 @@
 							<div style="margin-top:10px;">
 								<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
 									<script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.pc.js.url')}" src="" charset="UTF-8"></script>
+
+									<script th:inline="javascript">
+										if(!wcs_add) var wcs_add = {};
+										wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+										wcs.inflow("style24.com");
+										wcs_do();
+									</script>
+
 									<script type="text/javascript" >
 										/*버튼설정*/
 										naver.NaverPayButton.apply({
@@ -1898,6 +1907,7 @@
 	
 	var params = new Object();
 	params.goodsCd = [[${params.goodsCd}]];
+	params.colorCd = [[${params.colorCd}]];
 	params.viewDt = [[${params.viewDt}]];
 	params.preview = [[${params.preview}]];
 	params.adminYn = [[${params.adminYn}]];
@@ -1969,8 +1979,6 @@
 		var opt_selecter01_4 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_4');
 		var opt_selecter01_5 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_5');
 
-
-
 		//스타일링 추천 picker 상품팝업
 /*         $(document).on('click','.pd_recommend .area_slider .item_picker button',function(e){
             $("#pdLookbookPop").modal("show");
@@ -1983,83 +1991,6 @@
 		
 		fnOptionSoldout();
 		
-		// 광고 스크립트용
-		var goodsNavigation = [[${goodsNavigation}]];
-		var cate1Nm = "";
-		var cate2Nm = "";
-		var cate3Nm = "";
-		var cate4Nm = "";
-		var cate5Nm = "";
-		if (!gagajf.isNull(goodsNavigation)) {
-			cate1Nm = goodsNavigation.cate1Nm;
-			cate2Nm = goodsNavigation.cate2Nm;
-			cate3Nm = goodsNavigation.cate3Nm;
-			cate4Nm = goodsNavigation.cate4Nm;
-			cate5Nm = goodsNavigation.cate3Nm;
-			
-			if (!gagajf.isNull(cate1Nm)) {
-				cateNm += cate1Nm;
-			}
-			if (!gagajf.isNull(cate2Nm)) {
-				cateNm += ' > ' + cate2Nm;
-			}
-			if (!gagajf.isNull(cate3Nm)) {
-				cateNm += ' > ' + cate3Nm;
-			}
-			if (!gagajf.isNull(cate4Nm)) {
-				cateNm += ' > ' + cate4Nm;
-			}
-			if (!gagajf.isNull(cate5Nm)) {
-				cateNm += ' > ' + cate5Nm;
-			}
-		}
-		// 광고 스크립트용
-		
-		var snsGoodsImg = _uploadGoodsUrl + [[${goodsInfo.sysImgNm}]];
-		var snsUrl = location.protocol + _PAGE_GOODS_DETAIL + params.goodsCd +'&colorCd =' + params.colorCd  ;
-		var snsGoodsFullNm = [[${goodsInfo.goodsFullNm}]];
-		
-		<!-- 페이스북 카카오스토리 연동 관련 메타태그 -->
-		$("meta[property='og:url']").attr('content', snsUrl);
-		$("meta[property='og:title']").attr('content', snsGoodsFullNm);
-		$("meta[property='og:description']").attr('content', snsGoodsFullNm);
-		$("meta[property='og:image']").attr('content', snsGoodsImg);
-
-		<!-- 트위터 관련 메타태그 -->
-		$("meta[name='twitter:url']").attr('content', snsUrl);
-		$("meta[name='twitter:title']").attr('content', snsGoodsFullNm);
-		$("meta[name='twitter:description']").attr('content', snsGoodsFullNm);
-		$("meta[name='twitter:image']").attr('content', snsGoodsImg);
-
-		// 추천솔류션 meta 설정
-		$("meta[property='eg:type']").attr('content',"product");
-		$("meta[property='eg:cuid']").attr('content',eglqueueCuid);
-		$("meta[property='eg:itemId']").attr('content', [[${goodsInfo.goodsCd}]] );
-		$("meta[property='eg:itemName']").attr('content',[[${goodsInfo.goodsFullNm}]] );
-		$("meta[property='eg:itemImage']").attr('content', snsGoodsImg);
-		$("meta[property='eg:itemUrl']").attr('content',snsUrl);
-		$("meta[property='eg:originalPrice']").attr('content',[[${goodsInfo.listPrice}]]);
-		$("meta[property='eg:salePrice']").attr('content',[[${goodsInfo.currPrice}]]);
-		$("meta[property='eg:category1']").attr('content',cate1Nm);
-		$("meta[property='eg:category2']").attr('content',cate2Nm);
-		$("meta[property='eg:category3']").attr('content',cate3Nm);
-		$("meta[property='eg:category4']").attr('content',cate4Nm);
-		$("meta[property='eg:category5']").attr('content',cate5Nm);
-		$("meta[property='eg:brandId']").attr('content',[[${goodsInfo.brandGroupNo}]]);
-		$("meta[property='eg:brandName']").attr('content',[[${goodsInfo.brandGroupNm}]]);
-		$("meta[property='eg:regDate']").attr('content',[[${goodsInfo.regDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
-		$("meta[property='eg:updateDate']").attr('content',[[${goodsInfo.updDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
-		$("meta[property='eg:stock']").attr('content',"");
-		$("meta[property='eg:state']").attr('content',[[${goodsInfo.goodsStatNm}]]);
-		$("meta[property='eg:description']").attr('content',null);
-		$("meta[property='eg:extraImage']").attr('content',null);
-		$("meta[property='eg:locale']").attr('content',"KR");
-		$("meta[property='eg:isNew']").attr('content',([[${goodsInfo.formalGb}]] == 'G009_10')? 'True' :'False');
-		$("meta[property='eg:etc1']").attr('content', [[${goodsInfo.selfGoodsYn}]]);
-		
-		// ep 쿠폰확인
-		fnEpCouponDown([[${afLinkCd}]], [[${params.goodsCd}]], 1);
-		
 		
 	});
 	
@@ -2164,6 +2095,86 @@
  		});
  	}
      
+
+	// 광고 스크립트용
+	var goodsNavigation = [[${goodsNavigation}]];
+	var cate1Nm = "";
+	var cate2Nm = "";
+	var cate3Nm = "";
+	var cate4Nm = "";
+	var cate5Nm = "";
+	if (!gagajf.isNull(goodsNavigation)) {
+		cate1Nm = goodsNavigation.cate1Nm;
+		cate2Nm = goodsNavigation.cate2Nm;
+		cate3Nm = goodsNavigation.cate3Nm;
+		cate4Nm = goodsNavigation.cate4Nm;
+		cate5Nm = goodsNavigation.cate3Nm;
+
+		if (!gagajf.isNull(cate1Nm)) {
+			cateNm += cate1Nm;
+		}
+		if (!gagajf.isNull(cate2Nm)) {
+			cateNm += ' > ' + cate2Nm;
+		}
+		if (!gagajf.isNull(cate3Nm)) {
+			cateNm += ' > ' + cate3Nm;
+		}
+		if (!gagajf.isNull(cate4Nm)) {
+			cateNm += ' > ' + cate4Nm;
+		}
+		if (!gagajf.isNull(cate5Nm)) {
+			cateNm += ' > ' + cate5Nm;
+		}
+	}
+	// 광고 스크립트용
+	
+     
+	var snsGoodsImg = _uploadGoodsUrl + [[${goodsInfo.sysImgNm}]];
+	var snsUrl = location.protocol + _PAGE_GOODS_DETAIL + params.goodsCd;
+	if (typeof (params.colorCd) != 'undefined') snsUrl += "&colorCd=" + params.colorCd;
+	var snsGoodsFullNm = [[${goodsInfo.goodsFullNm}]];
+	
+	<!-- 페이스북 카카오스토리 연동 관련 메타태그 -->
+	$("meta[property='og:url']").attr('content', snsUrl);
+	$("meta[property='og:title']").attr('content', snsGoodsFullNm);
+	$("meta[property='og:description']").attr('content', snsGoodsFullNm);
+	$("meta[property='og:image']").attr('content', snsGoodsImg);
+
+	<!-- 트위터 관련 메타태그 -->
+	$("meta[name='twitter:url']").attr('content', snsUrl);
+	$("meta[name='twitter:title']").attr('content', snsGoodsFullNm);
+	$("meta[name='twitter:description']").attr('content', snsGoodsFullNm);
+	$("meta[name='twitter:image']").attr('content', snsGoodsImg);
+
+	// 추천솔류션 meta 설정
+	$("meta[property='eg:type']").attr('content',"product");
+	$("meta[property='eg:cuid']").attr('content',eglqueueCuid);
+	$("meta[property='eg:itemId']").attr('content', [[${goodsInfo.goodsCd}]] );
+	$("meta[property='eg:itemName']").attr('content',[[${goodsInfo.goodsFullNm}]] );
+	$("meta[property='eg:itemImage']").attr('content', snsGoodsImg);
+	$("meta[property='eg:itemUrl']").attr('content',snsUrl);
+	$("meta[property='eg:originalPrice']").attr('content',[[${goodsInfo.listPrice}]]);
+	$("meta[property='eg:salePrice']").attr('content',[[${goodsInfo.currPrice}]]);
+	$("meta[property='eg:category1']").attr('content',cate1Nm);
+	$("meta[property='eg:category2']").attr('content',cate2Nm);
+	$("meta[property='eg:category3']").attr('content',cate3Nm);
+	$("meta[property='eg:category4']").attr('content',cate4Nm);
+	$("meta[property='eg:category5']").attr('content',cate5Nm);
+	$("meta[property='eg:brandId']").attr('content',[[${goodsInfo.brandGroupNo}]]);
+	$("meta[property='eg:brandName']").attr('content',[[${goodsInfo.brandGroupNm}]]);
+	$("meta[property='eg:regDate']").attr('content',[[${goodsInfo.regDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
+	$("meta[property='eg:updateDate']").attr('content',[[${goodsInfo.updDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
+	$("meta[property='eg:stock']").attr('content',"");
+	$("meta[property='eg:state']").attr('content',[[${goodsInfo.goodsStatNm}]]);
+	$("meta[property='eg:description']").attr('content',null);
+	$("meta[property='eg:extraImage']").attr('content',null);
+	$("meta[property='eg:locale']").attr('content',"KR");
+	$("meta[property='eg:isNew']").attr('content',([[${goodsInfo.formalGb}]] == 'G009_10')? 'True' :'False');
+	$("meta[property='eg:etc1']").attr('content', [[${goodsInfo.selfGoodsYn}]]);
+	
+	// ep 쿠폰확인
+	fnEpCouponDown([[${afLinkCd}]], [[${params.goodsCd}]], 1);
+   
      
 /*]]>*/
 </script>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/mypage/MypageCreExchangeDetailFormWeb.html

@@ -102,7 +102,7 @@
 										<div class="button_box">
 <!--											<p th:if="${exchangeDtl.chgStat == 'G685_20' or exchangeDtl.chgStat == 'G685_21'}"><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${exchangeDtl.ordNo}, ordChgSq=${exchangeDtl.ordChgSq}, cancelGb=${exchangeDtl.chgGb}" onclick="fnCreCancel(this);"><span>신청취소</span></button></p>-->
 											<p th:if="${exchangeDtl.chgStat == 'G685_32' or exchangeDtl.chgStat == 'G685_21'}"><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${exchangeDtl.ordNo}, ordChgSq=${exchangeDtl.ordChgSq}" onclick="fnCrePayAddCost(this);"><span>결제하기</span></button></p>
-											<p th:if="${exchangeDtl.chgStat == 'G685_40' and  xchangeDtl.ordDtlStat == 'G013_50'}"><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${exchangeDtl.ordNo}, ordDtlNo=${exchangeDtl.ordDtlNo}, shipCompCd=${exchangeDtl.exchangeShipCompCd}, invoiceNo=${exchangeDtl.exchangeInvoiceNo}" onclick="fnGoToDelivery(this);"><span>배송조회</span></button></p>
+											<p th:if="${exchangeDtl.chgStat == 'G685_40' and exchangeDtl.ordDtlStat == 'G013_50'}"><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${exchangeDtl.ordNo}, ordDtlNo=${exchangeDtl.ordDtlNo}, shipCompCd=${exchangeDtl.exchangeShipCompCd}, invoiceNo=${exchangeDtl.exchangeInvoiceNo}" onclick="fnGoToDelivery(this);"><span>배송조회</span></button></p>
 											<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></p>
 										</div>
 									</div>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/order/OrderAddPaymentFormWeb.html

@@ -162,7 +162,7 @@
 													<img th:src="${imageUrl + '/' + goods.sysImgNm}" src="/" width="100%" alt="">
 												</span>
 												<figcaption>
-													<div class="brand" th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></div>
+													<div class="brand" th:text="${goods.brandGroupNm}"></div>
 													<div class="name goodsNm" th:text="${goods.goodsNm}"></div>
 													<div class="option" th:each="colorNm, index : ${goods.colorNmArr}">
 														<span th:text="${colorNm}+'/'+${goods.optCd2Arr[index.index]}"></span> 

+ 16 - 4
src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html

@@ -16,6 +16,7 @@
 <body>
 <th:block layout:fragment="content">
 <!--  container -->
+<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>
 <div id="container" class="container od">
 	<div class="wrap">
 		<div class="content completed">
@@ -84,10 +85,6 @@
 													<ul>
 														<li>
 															<span id="recipNm" th:text="${orderInfo.recipNm}"></span>
-															<!-- 
-															<span class="tag">기본배송지</span>
-															<span class="tag primary_line">총알배송</span>
-															 -->
 														</li>
 														<li>
 															<span id="recipPhnno" th:text="${orderInfo.recipPhnno}"></span>
@@ -455,6 +452,21 @@ x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
 <!-- //2021.05.27 주문완료 로그스크립트 삽입 -->
 
 
+<!--네이버페이 전환스크립트를 이용하여 전환값 설정-->
+<script th:inline="javascript">
+	var _nasa={};
+	if (window.wcs) _nasa["cnv"] = wcs.cnv("1","[[${realOrdSumAmt}]]");
+</script>
+<!--위 스크립트를 통해 설정된 전환값과 본 페이지의 로그를 서버에 전송-->
+<script th:inline="javascript">
+	if (!wcs_add) var wcs_add = {};
+	wcs_add["wa"] = "${@environment.getProperty('naverPay.common.certification.key')}";
+	if (!_nasa) var _nasa = {};
+	if (window.wcs) {
+		wcs.inflow("style24.com");
+		wcs_do(_nasa); //서버로 로그 전송
+	}
+</script>
 
 
 </th:block>

+ 2 - 3
src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html

@@ -359,12 +359,11 @@ $(document).ready(function() {
 	if (!cfCheckLogin()) {
 		$(".day").html("<span>0</span>일");
 	}else{
+		$('.day').html('<span>' + (custAttendList.length + 1) + '</span>일');
+		$("#td_"+date).attr("class","today");
 		$.each(custAttendList, function(idx, item) {
-			$('.day').html('<span>' + custAttendList.length + '</span>일');
 			if(item.entryDt == date){
 				$("#td_"+date).attr("class","complete");
-			}else{
-				$("#td_"+date).attr("class","today"); 
 			}
 		})
 	}

+ 7 - 1
src/main/webapp/biz/goods.js

@@ -740,6 +740,7 @@ var fnDeleteFilterSlider = function (obj, gubun, minVal, maxVal){
 
 // 정렬 순서
 var fnSortingChange = function (obj, sortingType, stat, appGb){
+	fnCategoryGoodsInfiniteScrollInit();
 	if(stat != 'back'){
 		if($("#searchGoodsForm input[name=sortingType]").val()==sortingType){
 			return;
@@ -763,8 +764,13 @@ var fnSortingChange = function (obj, sortingType, stat, appGb){
 		$("#sorting"+sortingType).addClass("on");
 	}
 	$("#searchGoodsForm").find("[name=sortingType]").val(sortingType);
+	$("#searchGoodsForm").find("[name=pageNo]").val(1);
+	gagaInfiniteScroll.pageStatus.loadPage = 1;
+	gagaInfiniteScroll.pageStatus.pageNum = [];
 	gagaInfiniteScroll.pageStatus.sortingType = sortingType;
-	fnCategoryGoodsInfiniteScrollInit();
+
+	$('#endPage').hide();
+	$('#noFilterData').hide();
 	fnGoodsListSearch();
 }