Bladeren bron

Merge branch 'develop' into bin2107

bin2107 5 jaren geleden
bovenliggende
commit
49f320555c
33 gewijzigde bestanden met toevoegingen van 697 en 386 verwijderingen
  1. 9 0
      src/main/java/com/style24/front/biz/dao/TsfCounselDao.java
  2. 11 0
      src/main/java/com/style24/front/biz/service/TsfCounselService.java
  3. 18 0
      src/main/java/com/style24/front/biz/web/TsfCallcenterController.java
  4. 37 12
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  5. 63 3
      src/main/java/com/style24/front/biz/web/TsfNoMemberController.java
  6. 5 3
      src/main/java/com/style24/front/support/config/TsfWebMvcConfig.java
  7. 2 0
      src/main/java/com/style24/persistence/domain/Counsel.java
  8. 18 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfCounsel.xml
  9. 179 168
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml
  10. 71 55
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml
  11. 10 1
      src/main/webapp/WEB-INF/views/mob/callcenter/GoodsQnaFormMob.html
  12. 6 4
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDescFormMob.html
  13. 1 1
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html
  14. 94 90
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  15. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCancelFormMob.html
  16. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreListInfoMob.html
  17. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypageExchangeFormMob.html
  18. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypagePointFormMob.html
  19. 2 2
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCancelFormMob.html
  20. 3 3
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberOrderDetailFormMob.html
  21. 11 1
      src/main/webapp/WEB-INF/views/web/callcenter/GoodsQnaFormWeb.html
  22. 91 0
      src/main/webapp/WEB-INF/views/web/callcenter/OneToOnePhotoFormWeb.html
  23. 2 2
      src/main/webapp/WEB-INF/views/web/callcenter/OneToOneQnaFormWeb.html
  24. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageCancelFormWeb.html
  25. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageExchangeFormWeb.html
  26. 3 3
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderDetailFormWeb.html
  27. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/NoMemberCancelFormWeb.html
  28. 2 2
      src/main/webapp/WEB-INF/views/web/mypage/NoMemberOrderDetailFormWeb.html
  29. 3 3
      src/main/webapp/WEB-INF/views/web/planning/PlanningReplyPhotoFormWeb.html
  30. 1 1
      src/main/webapp/biz/mypage.js
  31. 2 2
      src/main/webapp/ux/mo/css/common_m.css
  32. 24 23
      src/main/webapp/ux/pc/js/common-ui.js
  33. 22 0
      src/main/webapp/ux/style24_link.js

+ 9 - 0
src/main/java/com/style24/front/biz/dao/TsfCounselDao.java

@@ -85,6 +85,15 @@ public interface TsfCounselDao {
 	 */
 	int deleteOneToOneQnaImage(Counsel counsel);
 
+	/**
+	 * 1:1문의 사진 리스트
+	 * @param counsel -상담정보
+	 * @return
+	 * @author sowon
+	 * @since 2021. 06. 214
+	 */
+	Collection<Counsel> getOneToOneImgList(Counsel counsel);
+	
 	/**
 	 * 상품문의 생성
 	 * @param counsel - 상담정보

+ 11 - 0
src/main/java/com/style24/front/biz/service/TsfCounselService.java

@@ -200,6 +200,17 @@ public class TsfCounselService {
 			throw new IllegalStateException("답변이 완료되지 않아 삭제할 수 없습니다.");
 		}
 	}
+	
+	/**
+	 * 1:1문의 사진 리스트
+	 * @param counsel -상담정보
+	 * @return
+	 * @author sowon
+	 * @since 2021. 06. 214
+	 */
+	public Collection<Counsel> getOneToOneImgList(Counsel counsel){
+		return counselDao.getOneToOneImgList(counsel);
+	}
 
 	/**
 	 * 상품문의 생성

+ 18 - 0
src/main/java/com/style24/front/biz/web/TsfCallcenterController.java

@@ -23,6 +23,7 @@ import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.Counsel;
 import com.style24.persistence.domain.Faq;
 import com.style24.persistence.domain.Notice;
+import com.style24.persistence.domain.Plan;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -325,6 +326,23 @@ public class TsfCallcenterController extends TsfBaseController {
 		counselService.deleteOneToOneQnaImage(counsel);
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
+	
+	/**
+	 * 1:1 문의 이미지상세 -  댓글 상세 레이어
+	 * @return
+	 * @author sowon
+	 * @since 2021. 6. 14
+	 */
+	@PostMapping("/onetoone/photo/detail/layer")
+	public ModelAndView onetoonePhotoDetailForm(Counsel counsel) {
+		ModelAndView mav = new ModelAndView();
+
+		// 상품 기본정보
+		mav.addObject("counsel",counsel);
+		mav.addObject("imgList", counselService.getOneToOneImgList(counsel));
+		mav.setViewName(super.getDeviceViewName("callcenter/OneToOnePhotoForm"));
+		return mav;
+	}
 
 	/**
 	 * 상품문의 등록 처리

+ 37 - 12
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -513,6 +513,21 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 교환처리
 		result = coreOrderChangeService.exchReq(orderChange);
+		int ordChgSq = result.getInt("ordChgSq");
+
+		if (ordChgSq > 0) {
+			try {
+				// 교환 알림톡 관련 정보 조회
+				orderChange = coreOrderChangeService.getKakaoOrderReturnInfo(ordChgSq);
+
+				// 교환 알림톡 발송
+				if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
+					coreKakaotalkService.sendOrderExchangeRequest(orderChange, custNo);
+				}
+			} catch (Exception e) {
+				throw new IllegalStateException(message.getMessage("FAIL_0004"));
+			}
+		}
 
 		// 처리 결과 코드에 따른 메세지 설정
 		if (result.get("status").equals(GagaResponseStatus.SUCCESS.getCode())) {
@@ -756,15 +771,17 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 6. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
 		GagaMap map = coreOrderChangeService.returnRequest(result);
-		Integer ordChgSq = map.getInt("ordChgSq");
+		int ordChgSq = map.getInt("ordChgSq");
 
 		if (ordChgSq > 0) {
-			// 반품 알림톡 관련 정보 조회
-			orderChange = coreOrderChangeService.getKakaoOrderReturnInfo(ordChgSq);
-
 			try {
+				// 반품 알림톡 관련 정보 조회
+				orderChange = coreOrderChangeService.getKakaoOrderReturnInfo(ordChgSq);
+				
 				// 반품 알림톡 발송
-				coreKakaotalkService.sendOrderReturnRequest(orderChange, custNo);
+				if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
+					coreKakaotalkService.sendOrderReturnRequest(orderChange, custNo);
+				}
 			} catch (Exception e) {
 				throw new IllegalStateException(message.getMessage("FAIL_0004"));
 			}
@@ -877,17 +894,25 @@ public class TsfMypageController extends TsfBaseController {
 		GagaMap result = coreOrderChangeService.orderCancelPreInfoTemp(orderChange, custNo);
 
 		// 3. 취소완료 카카오알림톡 발송
-		Integer ordChgSq = result.getInt("ordChgSq");
+		int ordChgSq = result.getInt("ordChgSq");
 		
 		if (ordChgSq > 0) {
-			// 취소 알림톡 관련 정보 조회
-			orderChange = coreOrderChangeService.getKakaoOrderCancelInfo(ordChgSq);
-			
-			GagaMap replaceInfo = coreOrderChangeService.getMailOrderCancelReplaceInfo(orderChange);
-
 			try {
+				// 취소 알림톡 관련 정보 조회
+				orderChange = coreOrderChangeService.getKakaoOrderCancelInfo(ordChgSq);
+
 				// 취소 알림톡 발송
-				coreKakaotalkService.sendOrderCancelComplete(orderChange, custNo);
+				if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
+					coreKakaotalkService.sendOrderCancelComplete(orderChange, custNo);
+				}
+
+				// 취소 안내 메일 정보 조회
+				GagaMap replaceInfo = coreOrderChangeService.getMailOrderCancelReplaceInfo(orderChange);
+
+				// 취소 안내 메일 발송
+				if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
+					mailService.sendOrderCancel(replaceInfo, custNo);
+				}
 			} catch (Exception e) {
 				throw new IllegalStateException(message.getMessage("FAIL_0004"));
 			}

+ 63 - 3
src/main/java/com/style24/front/biz/web/TsfNoMemberController.java

@@ -19,7 +19,9 @@ import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponse;
 import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.style24.core.biz.service.TscCustomerService;
+import com.style24.core.biz.service.TscKakaotalkService;
 import com.style24.core.biz.service.TscKcpService;
+import com.style24.core.biz.service.TscMailService;
 import com.style24.core.biz.service.TscOrderChangeService;
 import com.style24.core.biz.service.TscOrderRefundService;
 import com.style24.core.biz.service.TscOrderService;
@@ -100,6 +102,12 @@ public class TsfNoMemberController extends TsfBaseController {
 	@Autowired
 	private TscKcpService coreKcpService;
 
+	@Autowired
+	private TscKakaotalkService coreKakaotalkService;
+
+	@Autowired
+	private TscMailService mailService;
+
 	/**
 	 * 비회원 주문 내역
 	 *
@@ -563,8 +571,30 @@ public class TsfNoMemberController extends TsfBaseController {
 		// GagaMap result = coreOrderChangeService.orderCancelPreInfo(orderChange, 0);
 		GagaMap result = coreOrderChangeService.orderCancelPreInfoTemp(orderChange, 0);
 
-		// TODO
-		// 취소 완료 알림톡 발송 에정
+		// 2. 취소완료 카카오알림톡 발송
+		int ordChgSq = result.getInt("ordChgSq");
+
+		if (ordChgSq > 0) {
+			try {
+				// 취소 알림톡 관련 정보 조회
+				orderChange = coreOrderChangeService.getKakaoOrderCancelInfo(ordChgSq);
+
+				// 취소 알림톡 발송
+				if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
+					coreKakaotalkService.sendOrderCancelComplete(orderChange, 0);
+				}
+
+				// 취소 안내 메일 정보 조회
+				GagaMap replaceInfo = coreOrderChangeService.getMailOrderCancelReplaceInfo(orderChange);
+
+				// 취소 안내 메일 발송
+				if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
+					mailService.sendOrderCancel(replaceInfo, 0);
+				}
+			} catch (Exception e) {
+				throw new IllegalStateException(message.getMessage("FAIL_0004"));
+			}
+		}
 
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
 		result.set("message", message.getMessage("CANCEL_0001"));
@@ -712,7 +742,22 @@ public class TsfNoMemberController extends TsfBaseController {
 		result.set("chgerRtnMemo", orderChange.getChgerRtnMemo());		// 반품메모
 
 		// 6. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
-		coreOrderChangeService.returnRequest(result);
+		GagaMap map = coreOrderChangeService.returnRequest(result);
+		int ordChgSq = map.getInt("ordChgSq");
+
+		if (ordChgSq > 0) {
+			try {
+				// 반품 알림톡 관련 정보 조회
+				orderChange = coreOrderChangeService.getKakaoOrderReturnInfo(ordChgSq);
+				
+				// 반품 알림톡 발송
+				if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
+					coreKakaotalkService.sendOrderReturnRequest(orderChange, 0);
+				}
+			} catch (Exception e) {
+				throw new IllegalStateException(message.getMessage("FAIL_0004"));
+			}
+		}
 
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
 		if (orderChange.getAddPayCost() == 0) {
@@ -895,6 +940,21 @@ public class TsfNoMemberController extends TsfBaseController {
 
 		// 교환처리
 		result = coreOrderChangeService.exchReq(orderChange);
+		int ordChgSq = result.getInt("ordChgSq");
+
+		if (ordChgSq > 0) {
+			try {
+				// 교환 알림톡 관련 정보 조회
+				orderChange = coreOrderChangeService.getKakaoOrderReturnInfo(ordChgSq);
+
+				// 교환 알림톡 발송
+				if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
+					coreKakaotalkService.sendOrderExchangeRequest(orderChange, 0);
+				}
+			} catch (Exception e) {
+				throw new IllegalStateException(message.getMessage("FAIL_0004"));
+			}
+		}
 
 		// 처리 결과 코드에 따른 메세지 설정
 		if (result.get("status").equals(GagaResponseStatus.SUCCESS.getCode())) {

+ 5 - 3
src/main/java/com/style24/front/support/config/TsfWebMvcConfig.java

@@ -18,8 +18,7 @@ import org.springframework.web.multipart.support.MultipartFilter;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
-import com.gagaframework.web.core.filter.GagaXssServletFilter;
-import com.gagaframework.web.rest.client.GagaRequestStringTrim;
+import com.style24.core.support.filter.TscXssServletFilter;
 import com.style24.front.support.interceptor.TsfAflinkInterceptor;
 import com.style24.front.support.interceptor.TsfDefaultInterceptor;
 import com.style24.front.support.interceptor.TsfGoodsViewInterceptor;
@@ -27,6 +26,8 @@ import com.style24.front.support.interceptor.TsfLoginCheckInterceptor;
 import com.style24.front.support.interceptor.TsfRememberMeInterceptor;
 import com.style24.front.support.interceptor.TsfReturnUrlInterceptor;
 
+import com.gagaframework.web.rest.client.GagaRequestStringTrim;
+
 /**
  * Web MVC Configuration
  * 
@@ -163,7 +164,8 @@ public class TsfWebMvcConfig implements WebMvcConfigurer {
 	@Bean
 	public FilterRegistrationBean xssFilterRegistrationBean() {
 		FilterRegistrationBean bean = new FilterRegistrationBean();
-		bean.setFilter(new GagaXssServletFilter());
+//		bean.setFilter(new GagaXssServletFilter());
+		bean.setFilter(new TscXssServletFilter());
 		bean.setOrder(2);
 		bean.addUrlPatterns("/*");
 		return bean;

+ 2 - 0
src/main/java/com/style24/persistence/domain/Counsel.java

@@ -54,6 +54,8 @@ public class Counsel extends TscBaseDomain {
 	private String secretYn;		// 비밀글여부(상품문의에서만 사용)
 	private String delYn;			// 삭제여부
 	private int selfGb;				// 내문의 1: , 그외 0
+	private String sysFileNm;		// 이미지 공통 변수
+	private int rnum;
 	
 	private String goodsType; 		// 상품타입
 

+ 18 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCounsel.xml

@@ -199,6 +199,24 @@
 		AND    ANS_STAT = 'G060_20' /*답변상태:답변완료*/
 	</update>
 	
+	<select id="getOneToOneImgList" parameterType="Counsel"  resultType="Counsel">
+		/* TsfCounsel.getOneToOnePhotoList */
+		SELECT  Z.*
+		      , ROW_NUMBER() OVER() AS RNUM
+		FROM
+		(
+		   SELECT  SYS_FILE_NM1 AS SYS_FILE_NM
+		         , COUNSEL_SQ 
+		   FROM  TB_COUNSEL TC 
+		   WHERE COUNSEL_SQ = #{counselSq}
+		   UNION 
+		   SELECT SYS_FILE_NM2 AS SYS_FILE_NM
+		         , COUNSEL_SQ
+		   FROM TB_COUNSEL TC 
+		   WHERE COUNSEL_SQ = #{counselSq}
+		)Z     
+	</select>
+	
 	<!-- 상품문의 생성 -->
 	<insert id="createGoodsQna" parameterType="Counsel">
 		/* TsfCounsel.createGoodsQna */

+ 179 - 168
src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml

@@ -70,111 +70,112 @@
 		     , Z.RECIP_NM
 		     , Z.PAY_STAT
 		  FROM (SELECT O.ORD_NO
-					 , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
-					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(O.ORD_DT + INTERVAL 3 DAY, '%Y.%m.%d')
-						END																AS GIFT_LIMIT_DT
-					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN TIMESTAMPDIFF(DAY, NOW(), O.ORD_DT + INTERVAL 3 DAY)
-						END																AS GIFT_LIMIT_DAY
-					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(DA.UPD_DT, '%Y.%m.%d')
-						END																AS GIFT_COMPLETE_DT
-					 , DATE_FORMAT(OD.DELV_EDDT, '%m/%d')								AS DELV_EDDT
-					 , OD.ORD_DTL_NO
-					 , OD.ORD_EXCH_GB
-					 , OD.GOODS_CD
+		             , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
+		             , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(O.ORD_DT + INTERVAL 3 DAY, '%Y.%m.%d')
+		                END                                                             AS GIFT_LIMIT_DT
+		             , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN TIMESTAMPDIFF(DAY, NOW(), O.ORD_DT + INTERVAL 3 DAY)
+		                END                                                             AS GIFT_LIMIT_DAY
+		             , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(DA.UPD_DT, '%Y.%m.%d')
+		                END                                                             AS GIFT_COMPLETE_DT
+		             , DATE_FORMAT(OD.DELV_EDDT, '%m/%d')                               AS DELV_EDDT
+		             , OD.ORD_DTL_NO
+		             , OD.ORD_EXCH_GB
+		             , OD.GOODS_CD
 		             , OD.GIFT_ADDR_INP_YN
-					 , G.GOODS_NM
-					 , IFNULL((SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
-					 , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = ODI.ITEM_CD)		AS ITEM_NM
+		             , G.GOODS_NM
+		             , IFNULL((SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
+		             , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = ODI.ITEM_CD)     AS ITEM_NM
 		             , ODI.ORD_DTL_ITEM_SQ
-					 , ODI.OPT_CD1
-					 , ODI.OPT_CD2
-					 , G.LIST_PRICE
+		             , ODI.OPT_CD1
+		             , ODI.OPT_CD2
+		             , G.LIST_PRICE
 		             , G.GOODS_TYPE
 		             , CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
 		                    ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') END AS SYS_IMG_NM
-					 , OD.ORD_DTL_STAT
-					 , OD.ORD_QTY
-					 , OD.CNCL_RTN_QTY
-					 , OD.ORD_AMT
-					 , OD.REAL_ORD_AMT
-					 , OD.SAVE_PNT_AMT
-					 , OD.CNCL_RTN_AMT
-					 , OD.PNT_DC_AMT
-					 , OD.GFCD_USE_AMT
-					 , OD.SHIP_COMP_CD
-					 , OD.GIFT_PACK_YN
-					 , (SELECT SHIP_COMP_NM
-						  FROM TB_SHIP_COMPANY Z
-						 WHERE Z.SHIP_COMP_CD = OD.SHIP_COMP_CD)						AS SHIP_COMP_NM
-					 , OD.INVOICE_NO
-					 , OD.SUPPLY_COMP_CD
-					 , OD.DELV_FEE_CD
-					 , OD.SHOT_DELV_YN
-					 , OD.CHANGEABLE_YN
-					 , OD.RETURNABLE_YN
-					 , G.SELF_GOODS_YN
+		             , OD.ORD_DTL_STAT
+		             , OD.ORD_QTY
+		             , OD.CNCL_RTN_QTY
+		             , OD.ORD_AMT
+		             , OD.REAL_ORD_AMT
+		             , OD.SAVE_PNT_AMT
+		             , OD.CNCL_RTN_AMT
+		             , OD.PNT_DC_AMT
+		             , OD.GFCD_USE_AMT
+		             , OD.SHIP_COMP_CD
+		             , OD.GIFT_PACK_YN
+		             , (SELECT SHIP_COMP_NM
+		                  FROM TB_SHIP_COMPANY Z
+		                 WHERE Z.SHIP_COMP_CD = OD.SHIP_COMP_CD)                        AS SHIP_COMP_NM
+		             , OD.INVOICE_NO
+		             , OD.SUPPLY_COMP_CD
+		             , OD.DELV_FEE_CD
+		             , OD.SHOT_DELV_YN
+		             , OD.CHANGEABLE_YN
+		             , OD.RETURNABLE_YN
+		             , G.SELF_GOODS_YN
 		             , CASE BG.DISP_NM_LANG WHEN 'EN' THEN BG.BRAND_GROUP_ENM
 		                                    ELSE BG.BRAND_GROUP_KNM
 		                END                                                             AS BRAND_NM
-					 , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT)							AS ORD_DTL_STAT_NM
-					 , R.REVIEW_SQ
-					 , IF(NOW() <![CDATA[<]]> O.ORD_DT + INTERVAL 90 DAY, 'Y', 'N')		AS REVIEWABLE_YN
-					 , TIMESTAMPDIFF(DAY, NOW(), OD.DELV_EDDT + INTERVAL 2 WEEK)		AS PURCHASE_CONFIRM_DAY
+		             , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT)                          AS ORD_DTL_STAT_NM
+		             , R.REVIEW_SQ
+		             , IF(NOW() <![CDATA[<]]> O.ORD_DT + INTERVAL 90 DAY, 'Y', 'N')     AS REVIEWABLE_YN
+		             , TIMESTAMPDIFF(DAY, NOW(), OD.DELV_EDDT + INTERVAL 2 WEEK)        AS PURCHASE_CONFIRM_DAY
 		             , (SELECT MIN(DATE_FORMAT(DELV_RES_DT,'%Y.%m.%d')) FROM TB_GOODS_RES_SELL WHERE GOODS_CD = G.GOODS_CD AND NOW() <![CDATA[ < ]]> DELV_RES_DT AND USE_YN = 'Y') AS DELV_RES_DT
-					 , IFNULL(OCD.ORD_REQ_CHG_QTY, 0) AS ORD_REQ_CHG_QTY
-					 , OD.ORD_QTY - OD.CNCL_RTN_QTY - IFNULL(OCD.ORD_REQ_CHG_QTY, 0)    AS ORD_CAN_CHG_QTY
-					 , CA.BANK_CD
-					 , CA.ACCOUNT_NO
-					 , IFNULL(CA.ACCOUNT_NM, O.ORD_NM)                                  AS ACCOUNT_NM
-					 , DA.DELV_ADDR_SQ
-					 , DA.RECIP_NM
-					 , P.PAY_STAT
-				  FROM TB_ORDER O
-				 INNER JOIN TB_ORDER_DETAIL OD
-				    ON O.ORD_NO = OD.ORD_NO
-				   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
-				 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
-				    ON OD.ORD_NO = ODI.ORD_NO
-				   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-				 INNER JOIN TB_GOODS G
-				    ON OD.GOODS_CD = G.GOODS_CD
-				 INNER JOIN TB_BRAND B
-				    ON B.BRAND_CD = G.BRAND_CD
-				   AND B.USE_YN = 'Y'
-				 INNER JOIN TB_BRAND_GROUP BG
-				    ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
-				   AND BG.USE_YN = 'Y'
-				 INNER JOIN TB_PAYMENT P
-				    ON O.ORD_NO = P.ORD_NO
-				   AND P.PAY_GB = 'O'
-				   AND P.PAY_STAT IN ('G016_10', 'G016_30')
-				  LEFT OUTER JOIN TB_REVIEW R
-				    ON R.ORD_NO = OD.ORD_NO
-				   AND R.ORD_DTL_NO = OD.ORD_DTL_NO
-				   AND R.DEL_YN = 'N'
-				  LEFT OUTER JOIN TB_DELIVERY_ADDR DA
-				    ON DA.DELV_ADDR_SQ = OD.DELV_ADDR_SQ
-				  LEFT OUTER JOIN (SELECT OD.ORD_DTL_NO
-										, SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
-									 FROM TB_ORDER_CHANGE_DETAIL OCD
-									INNER JOIN TB_ORDER_DETAIL OD
-									   ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
-									WHERE OCD.DEL_YN = 'N'
+		             , IFNULL(OCD.ORD_REQ_CHG_QTY, 0) AS ORD_REQ_CHG_QTY
+		             , OD.ORD_QTY - OD.CNCL_RTN_QTY - IFNULL(OCD.ORD_REQ_CHG_QTY, 0)    AS ORD_CAN_CHG_QTY
+		             , CA.BANK_CD
+		             , CA.ACCOUNT_NO
+		             , IFNULL(CA.ACCOUNT_NM, O.ORD_NM)                                  AS ACCOUNT_NM
+		             , DA.DELV_ADDR_SQ
+		             , DA.RECIP_NM
+		             , P.PAY_STAT
+		          FROM TB_ORDER O
+		         INNER JOIN TB_ORDER_DETAIL OD
+		            ON O.ORD_NO = OD.ORD_NO
+		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
+		         INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+		            ON OD.ORD_NO = ODI.ORD_NO
+		           AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		         INNER JOIN TB_GOODS G
+		            ON OD.GOODS_CD = G.GOODS_CD
+		         INNER JOIN TB_BRAND B
+		            ON B.BRAND_CD = G.BRAND_CD
+		           AND B.USE_YN = 'Y'
+		         INNER JOIN TB_BRAND_GROUP BG
+		            ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		           AND BG.USE_YN = 'Y'
+		         INNER JOIN TB_PAYMENT P
+		            ON O.ORD_NO = P.ORD_NO
+		           AND P.PAY_GB = 'O'
+		           AND P.PAY_STAT IN ('G016_10', 'G016_30')
+		           AND P.PG_GB <![CDATA[<>]]> 'NAVER_ORDER'
+		          LEFT OUTER JOIN TB_REVIEW R
+		            ON R.ORD_NO = OD.ORD_NO
+		           AND R.ORD_DTL_NO = OD.ORD_DTL_NO
+		           AND R.DEL_YN = 'N'
+		          LEFT OUTER JOIN TB_DELIVERY_ADDR DA
+		            ON DA.DELV_ADDR_SQ = OD.DELV_ADDR_SQ
+		          LEFT OUTER JOIN (SELECT OD.ORD_DTL_NO
+		                                , SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
+		                             FROM TB_ORDER_CHANGE_DETAIL OCD
+		                            INNER JOIN TB_ORDER_DETAIL OD
+		                               ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+		                            WHERE OCD.DEL_YN = 'N'
 		<if test="ordNo != null and ordNo != ''">
-									  AND OD.ORD_NO = #{ordNo}
+		                              AND OD.ORD_NO = #{ordNo}
 		</if>
 		<if test="ordNoList != null">
-									  AND OD.ORD_NO IN
+		                              AND OD.ORD_NO IN
 			<foreach collection="ordNoList" item="item" index="index"  open="(" close=")" separator=",">
 				#{item}
 			</foreach>
 		</if>
-									  AND OCD.CHG_STAT IN ('G685_20', 'G685_21','G685_30', 'G685_31', 'G685_32', 'G685_33', 'G685_34', 'G685_50', 'G685_51')
-									GROUP BY OCD.ORD_DTL_NO
-								  ) OCD
-				    ON OD.ORD_DTL_NO = OCD.ORD_DTL_NO
-				  LEFT OUTER JOIN TB_CUST_ACCOUNT CA
-				    ON O.CUST_NO = CA.CUST_NO
+		                              AND OCD.CHG_STAT IN ('G685_20', 'G685_21','G685_30', 'G685_31', 'G685_32', 'G685_33', 'G685_34', 'G685_50', 'G685_51')
+		                            GROUP BY OCD.ORD_DTL_NO
+		                          ) OCD
+		            ON OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+		          LEFT OUTER JOIN TB_CUST_ACCOUNT CA
+		            ON O.CUST_NO = CA.CUST_NO
 		<where>
 			<choose>
 				<when test="custNo > 0">
@@ -220,12 +221,12 @@
 		</where>
 				) Z
 		 GROUP BY Z.ORD_NO, Z.ORD_DT, Z.GIFT_LIMIT_DT, Z.GIFT_LIMIT_DAY, Z.GIFT_COMPLETE_DT, GIFT_ADDR_INP_YN, Z.DELV_EDDT, Z.ORD_DTL_NO, Z.ORD_EXCH_GB
-				, Z.GOODS_CD, Z.GOODS_NM, Z.LIST_PRICE, Z.SYS_IMG_NM, Z.ORD_DTL_STAT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.ORD_AMT, Z.REAL_ORD_AMT
-				, Z.SAVE_PNT_AMT, Z.CNCL_RTN_AMT, Z.PNT_DC_AMT, Z.GFCD_USE_AMT, Z.SHIP_COMP_CD, Z.GIFT_PACK_YN, Z.SHIP_COMP_NM, Z.INVOICE_NO
-				, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD, Z.SHOT_DELV_YN, Z.CHANGEABLE_YN, Z.SELF_GOODS_YN, Z.BRAND_NM, Z.ORD_DTL_STAT_NM, Z.REVIEW_SQ
-				, Z.REVIEWABLE_YN, Z.PURCHASE_CONFIRM_DAY, Z.DELV_RES_DT, Z.ORD_REQ_CHG_QTY, Z.ORD_CAN_CHG_QTY, Z.BANK_CD, Z.ACCOUNT_NO, Z.ACCOUNT_NM
+		        , Z.GOODS_CD, Z.GOODS_NM, Z.LIST_PRICE, Z.SYS_IMG_NM, Z.ORD_DTL_STAT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.ORD_AMT, Z.REAL_ORD_AMT
+		        , Z.SAVE_PNT_AMT, Z.CNCL_RTN_AMT, Z.PNT_DC_AMT, Z.GFCD_USE_AMT, Z.SHIP_COMP_CD, Z.GIFT_PACK_YN, Z.SHIP_COMP_NM, Z.INVOICE_NO
+		        , Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD, Z.SHOT_DELV_YN, Z.CHANGEABLE_YN, Z.SELF_GOODS_YN, Z.BRAND_NM, Z.ORD_DTL_STAT_NM, Z.REVIEW_SQ
+		        , Z.REVIEWABLE_YN, Z.PURCHASE_CONFIRM_DAY, Z.DELV_RES_DT, Z.ORD_REQ_CHG_QTY, Z.ORD_CAN_CHG_QTY, Z.BANK_CD, Z.ACCOUNT_NO, Z.ACCOUNT_NM
 		        , Z.DELV_ADDR_SQ, Z.RECIP_NM, Z.PAY_STAT
-		ORDER BY Z.ORD_NO DESC, Z.ORD_DTL_STAT, Z.SELF_GOODS_YN DESC, Z.SHOT_DELV_YN DESC, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD, Z.PAY_STAT
+		 ORDER BY Z.ORD_NO DESC, Z.ORD_DTL_STAT, Z.SELF_GOODS_YN DESC, Z.SHOT_DELV_YN DESC, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD, Z.PAY_STAT
 	</select>
 
 	<!-- 마이페이지 주문목록 페이징 처리 주문번호 수 조회 -->
@@ -233,37 +234,42 @@
 		/* TsfOrder.getPagingOrdNoListCount */
 		SELECT COUNT(*) AS CNT
 		  FROM (SELECT O.ORD_NO
-				  FROM TB_ORDER O
-				 INNER JOIN TB_ORDER_DETAIL OD
-				    ON O.ORD_NO = OD.ORD_NO
-				 WHERE O.DISP_YN = 'Y'
-				   AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
-				   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
+		          FROM TB_ORDER O
+		         INNER JOIN TB_ORDER_DETAIL OD
+		            ON O.ORD_NO = OD.ORD_NO
+		         INNER JOIN TB_PAYMENT P
+		            ON O.ORD_NO = P.ORD_NO
+		           AND P.PAY_STAT IN ('G016_10', 'G016_30')
+		           AND P.PAY_GB = 'O'
+		           AND P.PG_GB <![CDATA[<>]]> 'NAVER_ORDER'
+		         WHERE O.DISP_YN = 'Y'
+		           AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
+		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
-				   AND O.ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
+		           AND O.ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
 		</if>
 		<if test="ordDtlStat != null and ordDtlStat != ''">
 			<choose>
 				<when test="ordDtlStat == 'G013_00'">
-				   AND OD.ORD_DTL_STAT = 'G013_10'
+		           AND OD.ORD_DTL_STAT = 'G013_10'
 				</when>
 				<otherwise>
-				   AND OD.ORD_DTL_STAT = #{ordDtlStat}
+		           AND OD.ORD_DTL_STAT = #{ordDtlStat}
 				</otherwise>
 			</choose>
 		</if>
 		<choose>
 			<when test="custNo > 0">
-				   AND O.CUST_NO = #{custNo}
+		           AND O.CUST_NO = #{custNo}
 			</when>
 			<otherwise>
-				   AND O.ORD_NM = #{ordNm}
-				   AND O.ORD_PHNNO = #{ordPhnno}
-				   AND O.ORD_NO = #{ordNo}
+		           AND O.ORD_NM = #{ordNm}
+		           AND O.ORD_PHNNO = #{ordPhnno}
+		           AND O.ORD_NO = #{ordNo}
 			</otherwise>
 		</choose>
-				 GROUP BY O.ORD_NO
-			   ) Z
+		         GROUP BY O.ORD_NO
+		       ) Z
 	</select>
 
 	<!-- 마이페이지 주문목록 페이징 처리 주문번호 조회 -->
@@ -275,6 +281,11 @@
 		  FROM TB_ORDER O
 		 INNER JOIN TB_ORDER_DETAIL OD
 		    ON O.ORD_NO = OD.ORD_NO
+		 INNER JOIN TB_PAYMENT P
+		    ON O.ORD_NO = P.ORD_NO
+		   AND P.PAY_STAT IN ('G016_10', 'G016_30')
+		   AND P.PAY_GB = 'O'
+		   AND P.PG_GB <![CDATA[<>]]> 'NAVER_ORDER'
 		 WHERE O.DISP_YN = 'Y'
 		   AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
 		   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
@@ -309,7 +320,7 @@
 	<select id="getOrderFreeGiftListForMypage" parameterType="Order" resultType="Order">
 		/* TsfOrder.getOrderFreeGiftListForMypage */
 		SELECT FG.GOODS_NM
-			 , OFV.USE_POINT
+		     , OFV.USE_POINT
 		  FROM TB_ORD_FREEGIFT OFG
 		 INNER JOIN TB_ORD_FREEGIFT_VAL OFV
 		    ON OFG.ORD_FREEGIFT_SQ = OFV.ORD_FREEGIFT_SQ
@@ -324,30 +335,30 @@
 		/* TsfOrder.getOrderAmtForMypage */
 		SELECT SUM(OD.ORD_AMT)          AS ORD_AMT
 		     , SUM(OD.CNCL_RTN_AMT)     AS CNCL_RTN_AMT
-			 , SUM(OD.CPN1_DC_AMT)      AS CPN1_DC_AMT
-			 , SUM(OD.TMTB1_DC_AMT)     AS TMTB1_DC_AMT
-			 , SUM(OD.TMTB2_DC_AMT)     AS TMTB2_DC_AMT
-			 , SUM(OD.CART_CPN_DC_AMT)  AS CART_CPN_DC_AMT
-			 , SUM(OD.GOODS_CPN_DC_AMT) AS GOODS_CPN_DC_AMT
-			 , SUM(OD.PRE_PNT_DC_AMT)   AS PRE_PNT_DC_AMT
-			 , SUM(OD.PNT_DC_AMT)       AS PNT_DC_AMT
-			 , SUM(OD.GFCD_USE_AMT)     AS GFCD_USE_AMT
-			 , SUM(OD.CPN1_DC_AMT + OD.TMTB1_DC_AMT + OD.TMTB2_DC_AMT + OD.CART_CPN_DC_AMT + OD.GOODS_CPN_DC_AMT + OD.PRE_PNT_DC_AMT + OD.PNT_DC_AMT + OD.GFCD_USE_AMT) AS TOTAL_DC_AMT
-			 , SUM(OD.REAL_ORD_AMT)     AS REAL_ORD_AMT
-			 , SUM(OD.SAVE_PNT_AMT)     AS SAVE_PNT_AMT
-			 , DF.DELV_CPN_DC_AMT
-			 , DF.REAL_DELV_AMT
-			 , P.PAY_AMT
-			 , P.NPAY_PNT_AMT
-			 , P.PG_CPN_AMT
+		     , SUM(OD.CPN1_DC_AMT)      AS CPN1_DC_AMT
+		     , SUM(OD.TMTB1_DC_AMT)     AS TMTB1_DC_AMT
+		     , SUM(OD.TMTB2_DC_AMT)     AS TMTB2_DC_AMT
+		     , SUM(OD.CART_CPN_DC_AMT)  AS CART_CPN_DC_AMT
+		     , SUM(OD.GOODS_CPN_DC_AMT) AS GOODS_CPN_DC_AMT
+		     , SUM(OD.PRE_PNT_DC_AMT)   AS PRE_PNT_DC_AMT
+		     , SUM(OD.PNT_DC_AMT)       AS PNT_DC_AMT
+		     , SUM(OD.GFCD_USE_AMT)     AS GFCD_USE_AMT
+		     , SUM(OD.CPN1_DC_AMT + OD.TMTB1_DC_AMT + OD.TMTB2_DC_AMT + OD.CART_CPN_DC_AMT + OD.GOODS_CPN_DC_AMT + OD.PRE_PNT_DC_AMT + OD.PNT_DC_AMT + OD.GFCD_USE_AMT) AS TOTAL_DC_AMT
+		     , SUM(OD.REAL_ORD_AMT)     AS REAL_ORD_AMT
+		     , SUM(OD.SAVE_PNT_AMT)     AS SAVE_PNT_AMT
+		     , DF.DELV_CPN_DC_AMT
+		     , DF.REAL_DELV_AMT
+		     , P.PAY_AMT
+		     , P.NPAY_PNT_AMT
+		     , P.PG_CPN_AMT
 		  FROM TB_ORDER_DETAIL OD
 		  LEFT OUTER JOIN (
-			  SELECT ORD_NO
-			       , SUM(DELV_CPN_DC_AMT) AS DELV_CPN_DC_AMT
-				   , SUM(REAL_DELV_AMT)   AS REAL_DELV_AMT
-				FROM TB_DELIVERY_FEE
-			   WHERE ORD_NO = #{ordNo}
-			   GROUP BY ORD_NO
+		      SELECT ORD_NO
+		           , SUM(DELV_CPN_DC_AMT) AS DELV_CPN_DC_AMT
+		           , SUM(REAL_DELV_AMT)   AS REAL_DELV_AMT
+		        FROM TB_DELIVERY_FEE
+		       WHERE ORD_NO = #{ordNo}
+		       GROUP BY ORD_NO
 		  ) DF
 		    ON OD.ORD_NO = DF.ORD_NO
 		  LEFT OUTER JOIN (
@@ -431,23 +442,23 @@
 	<select id="getOrderDeliveryAddrInfo" parameterType="Order" resultType="Order">
 		/* TsfOrder.getOrderDeliveryAddrInfo */
 		SELECT DA.DELV_ADDR_SQ
-			 , DA.RECIP_NM
-			 , DA.RECIP_PHNNO
-			 , DA.RECIP_TELNO
-			 , DA.RECIP_ZIPCODE
-			 , DA.RECIP_BASE_ADDR
-			 , DA.RECIP_DTL_ADDR
-			 , DA.DELV_MEMO
-			 , DL.RTN_LOC_NM
-			 , DL.RTN_LOC_TELNO
-			 , DL.RTN_LOC_ZIPCODE
-			 , DL.RTN_LOC_BASE_ADDR
-			 , DL.RTN_LOC_DTL_ADDR
-			 , DA.GIFT_MSG
-			 , DA.REG_NO
-			 , DA.REG_DT
-			 , DA.UPD_NO
-			 , DA.UPD_DT
+		     , DA.RECIP_NM
+		     , DA.RECIP_PHNNO
+		     , DA.RECIP_TELNO
+		     , DA.RECIP_ZIPCODE
+		     , DA.RECIP_BASE_ADDR
+		     , DA.RECIP_DTL_ADDR
+		     , DA.DELV_MEMO
+		     , DL.RTN_LOC_NM
+		     , DL.RTN_LOC_TELNO
+		     , DL.RTN_LOC_ZIPCODE
+		     , DL.RTN_LOC_BASE_ADDR
+		     , DL.RTN_LOC_DTL_ADDR
+		     , DA.GIFT_MSG
+		     , DA.REG_NO
+		     , DA.REG_DT
+		     , DA.UPD_NO
+		     , DA.UPD_DT
 		  FROM TB_DELIVERY_ADDR DA
 		 INNER JOIN TB_ORDER_DETAIL OD
 		    ON OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
@@ -489,25 +500,25 @@
 	<update id="updatePaymentForOrderFinished" parameterType="Payment">
 		/* TsfOrder.updatePaymentForOrderFinished */
 		UPDATE TB_PAYMENT SET
-			  PAY_DT = DATE_FORMAT(#{payDt} , '%Y%m%d%H%i%S')
-			, PAY_STAT = #{payStat}
+		      PAY_DT = DATE_FORMAT(#{payDt} , '%Y%m%d%H%i%S')
+		    , PAY_STAT = #{payStat}
 		    , PG_CPN_AMT = #{pgCpnAmt}
-			, NPAY_PNT_AMT = #{npayPntAmt}
-			, PG_TID = #{pgTid}
-			, PG_TRADE_NO = #{pgTradeNo}
-			, PG_SHOP_ID = #{pgShopId}
-			, CARD_TYPE = #{cardType}
-			, CARD_NM = #{cardNm}
-			, CARD_MIPS = #{cardMips}
-			, CARD_PCABLE_YN = IFNULL(#{cardPcableYn}, 'Y')
-			, VA_NO = #{vaNo}
-			, VA_BANK = #{vaBank}
-			, VA_DEADLINE = DATE_FORMAT(#{vaDeadline} , '%Y%m%d%H%i%S')
-			, TELECOM = #{telecom}
-			, CASH_AUTH_NO = #{cashAuthNo}
-			, CASH_TRADE_NO = #{cashTradeNo}
-			, UPD_NO = #{updNo}
-			, UPD_DT = NOW()
+		    , NPAY_PNT_AMT = #{npayPntAmt}
+		    , PG_TID = #{pgTid}
+		    , PG_TRADE_NO = #{pgTradeNo}
+		    , PG_SHOP_ID = #{pgShopId}
+		    , CARD_TYPE = #{cardType}
+		    , CARD_NM = #{cardNm}
+		    , CARD_MIPS = #{cardMips}
+		    , CARD_PCABLE_YN = IFNULL(#{cardPcableYn}, 'Y')
+		    , VA_NO = #{vaNo}
+		    , VA_BANK = #{vaBank}
+		    , VA_DEADLINE = DATE_FORMAT(#{vaDeadline} , '%Y%m%d%H%i%S')
+		    , TELECOM = #{telecom}
+		    , CASH_AUTH_NO = #{cashAuthNo}
+		    , CASH_TRADE_NO = #{cashTradeNo}
+		    , UPD_NO = #{updNo}
+		    , UPD_DT = NOW()
 		WHERE PAY_SQ = #{paySq}
 		  AND ORD_NO = #{ordNo}
 	</update>
@@ -631,7 +642,7 @@
 		             , SUM(OD.REAL_ORD_AMT) AS REAL_ORD_AMT
 		        FROM   TB_ORDER_DETAIL OD
 		        WHERE  OD.ORD_NO = #{ordNo}
-			    GROUP  BY OD.ORD_NO) OD
+		        GROUP  BY OD.ORD_NO) OD
 		INNER  JOIN (SELECT DF.ORD_NO
 		                 , SUM(DF.REAL_DELV_AMT) AS REAL_DELV_AMT
 		            FROM   TB_DELIVERY_FEE DF

+ 71 - 55
src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml

@@ -327,8 +327,8 @@
 	<select id="getUsedGiftcardInfo" parameterType="Order" resultType="GiftCard">
 		/* TsfOrderChange.getUsedGiftcardInfo */
 		SELECT CGH.ORD_NO
-			 , CGH.ORD_DTL_NO
-			 , SUM(CGH.GFCD_AMT) AS GFCD_AMT
+		     , CGH.ORD_DTL_NO
+		     , SUM(CGH.GFCD_AMT) AS GFCD_AMT
 		  FROM TB_CUST_GIFTCARD_HST CGH
 		 INNER JOIN TB_CUST_GIFTCARD CG
 		    ON CG.CUST_GFCD_SQ = CGH.CUST_GFCD_SQ
@@ -350,8 +350,8 @@
 	<select id="getUsedPointInfo" parameterType="Order" resultType="Point">
 		/* TsfOrderChange.getUsedPointInfo */
 		SELECT CPH.ORD_NO
-			 , CPH.ORD_DTL_NO
-			 , SUM(CPH.PNT_AMT) AS PNT_AMT
+		     , CPH.ORD_DTL_NO
+		     , SUM(CPH.PNT_AMT) AS PNT_AMT
 		  FROM TB_CUST_POINT_HST CPH
 		 INNER JOIN TB_CUST_POINT CP
 		    ON CP.CUST_PNT_SQ = CPH.CUST_PNT_SQ
@@ -374,58 +374,58 @@
 	<select id="getExchangeOptionInfo" parameterType="OrderChange" resultType="OrderChange">
 		/* TscOrderChange.getExchangeOptionInfo */
 		SELECT Z.ORD_NO
-			 , Z.ORD_DTL_NO
-			 , Z.ORD_DTL_ITEM_SQ
-			 , Z.ITEM_CD
-			 , Z.OPT_CD1
-			 , Z.OPT_CD2
-			 , Z.COLOR_NM
-			 , Z.GOODS_TYPE
+		     , Z.ORD_DTL_NO
+		     , Z.ORD_DTL_ITEM_SQ
+		     , Z.ITEM_CD
+		     , Z.OPT_CD1
+		     , Z.OPT_CD2
+		     , Z.COLOR_NM
+		     , Z.GOODS_TYPE
 		     , Z.SELF_GOODS_YN
-			 , Z.ITEM_NM
-			 , Z.GOODS_STAT
-			 , GROUP_CONCAT(Z.CHG_OPT_CD2 ORDER BY Z.DISP_ORD SEPARATOR ',') AS CHG_OPT_CD2
-			 , GROUP_CONCAT(Z.CURR_STOCK_QTY ORDER BY Z.DISP_ORD SEPARATOR ',') AS CHG_CURR_STOCK_QTY
-			 , GROUP_CONCAT(Z.SOLDOUT_YN ORDER BY Z.DISP_ORD SEPARATOR ',') AS CHG_SOLDOUT_YN
+		     , Z.ITEM_NM
+		     , Z.GOODS_STAT
+		     , GROUP_CONCAT(Z.CHG_OPT_CD2 ORDER BY Z.DISP_ORD SEPARATOR ',') AS CHG_OPT_CD2
+		     , GROUP_CONCAT(Z.CURR_STOCK_QTY ORDER BY Z.DISP_ORD SEPARATOR ',') AS CHG_CURR_STOCK_QTY
+		     , GROUP_CONCAT(Z.SOLDOUT_YN ORDER BY Z.DISP_ORD SEPARATOR ',') AS CHG_SOLDOUT_YN
 		  FROM (SELECT O.ORD_NO
-					 , OD.ORD_DTL_NO
-					 , ODI.ORD_DTL_ITEM_SQ
-					 , ODI.ITEM_CD
-					 , ODI.OPT_CD1
-					 , ODI.OPT_CD2
-					 , IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
-					 , OD.GOODS_TYPE
+		             , OD.ORD_DTL_NO
+		             , ODI.ORD_DTL_ITEM_SQ
+		             , ODI.ITEM_CD
+		             , ODI.OPT_CD1
+		             , ODI.OPT_CD2
+		             , IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
+		             , OD.GOODS_TYPE
 		             , G1.SELF_GOODS_YN
-					 , G2.GOODS_NM AS ITEM_NM
-					 , G2.GOODS_STAT
-					 , OP.OPT_CD2 AS CHG_OPT_CD2
-					 , OP.SOLDOUT_YN
-					 , OP.DISP_ORD
-					 , VS.CURR_STOCK_QTY - VS.BASE_STOCK_QTY AS CURR_STOCK_QTY
-				  FROM TB_ORDER O
-				 INNER JOIN TB_ORDER_DETAIL OD
-				    ON O.ORD_NO = OD.ORD_NO
-				 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
-				    ON OD.ORD_NO = ODI.ORD_NO
-				   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-				 INNER JOIN TB_GOODS G1
-				    ON OD.GOODS_CD = G1.GOODS_CD
-				 INNER JOIN TB_GOODS G2
-				    ON ODI.ITEM_CD = G2.GOODS_CD
-				 INNER JOIN TB_OPTION OP
-				    ON ODI.ITEM_CD = OP.GOODS_CD
-				   AND ODI.OPT_CD1 = OP.OPT_CD1
-				 INNER JOIN VW_STOCK VS
-				    ON OP.GOODS_CD = VS.GOODS_CD
-				   AND OP.OPT_CD = VS.OPT_CD
-				  LEFT OUTER JOIN TB_COLOR C
-				    ON C.COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1, ''), G1.MAIN_COLOR_CD)
-				   AND C.USE_YN = 'Y'
-				 WHERE O.ORD_NO = #{ordNo}
-				   AND OD.ORD_DTL_NO = #{ordDtlNo}
+		             , G2.GOODS_NM AS ITEM_NM
+		             , G2.GOODS_STAT
+		             , OP.OPT_CD2 AS CHG_OPT_CD2
+		             , OP.SOLDOUT_YN
+		             , OP.DISP_ORD
+		             , VS.CURR_STOCK_QTY - VS.BASE_STOCK_QTY AS CURR_STOCK_QTY
+		          FROM TB_ORDER O
+		         INNER JOIN TB_ORDER_DETAIL OD
+		            ON O.ORD_NO = OD.ORD_NO
+		         INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+		            ON OD.ORD_NO = ODI.ORD_NO
+		           AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		         INNER JOIN TB_GOODS G1
+		            ON OD.GOODS_CD = G1.GOODS_CD
+		         INNER JOIN TB_GOODS G2
+		            ON ODI.ITEM_CD = G2.GOODS_CD
+		         INNER JOIN TB_OPTION OP
+		            ON ODI.ITEM_CD = OP.GOODS_CD
+		           AND ODI.OPT_CD1 = OP.OPT_CD1
+		         INNER JOIN VW_STOCK VS
+		            ON OP.GOODS_CD = VS.GOODS_CD
+		           AND OP.OPT_CD = VS.OPT_CD
+		          LEFT OUTER JOIN TB_COLOR C
+		            ON C.COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1, ''), G1.MAIN_COLOR_CD)
+		           AND C.USE_YN = 'Y'
+		         WHERE O.ORD_NO = #{ordNo}
+		           AND OD.ORD_DTL_NO = #{ordDtlNo}
 		  ) Z
 		 GROUP BY Z.ORD_NO, Z.ORD_DTL_NO, Z.ORD_DTL_ITEM_SQ, Z.ITEM_CD, Z.OPT_CD1, Z.OPT_CD2
-				, Z.COLOR_NM, Z.GOODS_TYPE, Z.SELF_GOODS_YN, Z.ITEM_NM, Z.GOODS_STAT
+		        , Z.COLOR_NM, Z.GOODS_TYPE, Z.SELF_GOODS_YN, Z.ITEM_NM, Z.GOODS_STAT
 	</select>
 
 	<!-- 마이페이지 취반교 내역 조회 -->
@@ -490,6 +490,7 @@
 		          FROM TB_ORDER_CHANGE OC
 		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
 		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
+		           AND OCD.CHG_STAT NOT IN ('G685_10', 'G685_11')
 		          LEFT OUTER JOIN (SELECT ORD_CHG_SQ
 		                                , ORD_DTL_NO
 		                                , CHG_STAT
@@ -513,6 +514,11 @@
 		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
 		         INNER JOIN TB_ORDER O
 		            ON OD.ORD_NO = O.ORD_NO
+		         INNER JOIN TB_PAYMENT P
+		            ON O.ORD_NO = P.ORD_NO
+		           AND P.PAY_STAT IN ('G016_10', 'G016_30')
+		           AND P.PAY_GB = 'O'
+		           AND P.PG_GB <![CDATA[<>]]> 'NAVER_ORDER'
 		         INNER JOIN TB_ORDER_DETAIL_ITEM ODI
 		            ON OD.ORD_NO = ODI.ORD_NO
 		           AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
@@ -604,6 +610,7 @@
 		          FROM TB_ORDER_CHANGE OC
 		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
 		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
+		           AND OCD.CHG_STAT NOT IN ('G685_10', 'G685_11')
 		         INNER JOIN TB_ORDER_CHANGE_DETAIL_HST OCDH
 		            ON OCD.ORD_CHG_SQ = OCDH.ORD_CHG_SQ
 		           AND OCD.ORD_DTL_NO = OCDH.ORD_DTL_NO
@@ -613,10 +620,14 @@
 		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
 		         INNER JOIN TB_ORDER O
 		            ON OD.ORD_NO = O.ORD_NO
+		         INNER JOIN TB_PAYMENT P
+		            ON O.ORD_NO = P.ORD_NO
+		           AND P.PAY_STAT IN ('G016_10', 'G016_30')
+		           AND P.PAY_GB = 'O'
+		           AND P.PG_GB <![CDATA[<>]]> 'NAVER_ORDER'
 		         INNER JOIN TB_ORDER_DETAIL_ITEM ODI
 		            ON OD.ORD_NO = ODI.ORD_NO
 		           AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
 		         INNER JOIN TB_GOODS G1
 		            ON OD.GOODS_CD = G1.GOODS_CD
 		         INNER JOIN TB_GOODS G2
@@ -686,7 +697,8 @@
 		  FROM TB_ORDER_CHANGE OC
 		 INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
 		    ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
-		 INNER JOIN TB_ORDER_CHANGE_DETAIL_HST OCDH
+		   AND OCD.CHG_STAT NOT IN ('G685_10', 'G685_11')
+		INNER JOIN TB_ORDER_CHANGE_DETAIL_HST OCDH
 		    ON OCD.ORD_CHG_SQ = OCDH.ORD_CHG_SQ
 		   AND OCD.ORD_DTL_NO = OCDH.ORD_DTL_NO
 		   AND OCD.CHG_STAT = OCDH.CHG_STAT
@@ -695,10 +707,14 @@
 		   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
 		 INNER JOIN TB_ORDER O
 		    ON OD.ORD_NO = O.ORD_NO
-		 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+		 INNER JOIN TB_PAYMENT P
+		    ON O.ORD_NO = P.ORD_NO
+		   AND P.PAY_STAT IN ('G016_10', 'G016_30')
+		   AND P.PAY_GB = 'O'
+		   AND P.PG_GB <![CDATA[<>]]> 'NAVER_ORDER'
+		INNER JOIN TB_ORDER_DETAIL_ITEM ODI
 		    ON OD.ORD_NO = ODI.ORD_NO
 		   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
 		 INNER JOIN TB_GOODS G1
 		    ON OD.GOODS_CD = G1.GOODS_CD
 		 INNER JOIN TB_GOODS G2

+ 10 - 1
src/main/webapp/WEB-INF/views/mob/callcenter/GoodsQnaFormMob.html

@@ -96,6 +96,15 @@
         return tag;
     }
     
+	var fnSplitBr = function(obj){
+        let tag = '';
+        if(!gagajf.isNull(obj)){
+            var brText = obj;
+            tag = brText.split('&lt;br/&gt');
+        }
+        return tag[0];
+    }
+    
 	// QNA 콜백함수
 	var fnGetListCallback = function(result) {
 		// 목록
@@ -110,7 +119,7 @@
 				tag += '						<span class="fold_state ' + (item.ansStat == "G060_10" ? "doing" : "done") + '"">' + item.ansStatNm + '</span>\n'; //답변완료 : done / 처리중 : doing
 				tag += '						<span class="prod">' + item.goodsNm + ' ' + item.relGoodsCd + '</span>\n';
 				tag += '					</div>\n';
-				tag += '					<div class="lap2"><span>' + fnReplaceBr(item.questContent.escapeHtml()) + '</span></div>\n';
+				tag += '					<div class="lap2"><span>' + fnSplitBr(item.questContent.escapeHtml()) + '</span></div>\n';
 				tag += '				</div>\n';
 				tag += '				<span class="data">' + item.questDt + '</span>\n';
 				tag += '			</div>\n';

+ 6 - 4
src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDescFormMob.html

@@ -69,12 +69,13 @@
 				</th:block>
 			</div>
 			</th:block>
+		</div>
+		<div class="mdhtml_box  bnnoti" th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }">
 			<!-- 관리자 에디터입력 내용 노출  상단 html -->
-			<th:block  th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }" >
 				<div style="height:4rem"></div><!-- 여백용 html -->
 				<th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block>
-			</th:block >
-			
+		</div>
+		<div class="mdhtml_box" >
 			<th:block th:if="${goodsInfo.tobeFormYn == 'N' and goodsInfo.goodsDesc != null  and !goodsInfo.goodsDesc.empty}" >
 				<div style="height:4rem"></div><!-- 여백용 html -->
 				<div id="goodsDescHtml"></div>
@@ -165,7 +166,7 @@
 		</th:block>
 
 		<!-- 관리자 에디터입력 내용 노출  하다단 html -->
-		<div class="mdhtml_box" th:if="${goodsInfo.goodsDownDesc != null  and !goodsInfo.goodsDownDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
+		<div class="mdhtml_box  bnnoti" th:if="${goodsInfo.goodsDownDesc != null  and !goodsInfo.goodsDownDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
 		
 		<!-- 브랜드 노출 -->
 		<div class="brand_box">
@@ -368,6 +369,7 @@
 	var goodsDesc = [[${goodsInfo.goodsDesc}]];
 	if ("N" == [[${goodsInfo.tobeFormYn}]] && !gagajf.isNull(goodsDesc)){
 		$('#goodsDescHtml').html([[${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}]]);
+		$(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style"); // 이 위치에 있어야해요.
 	}
   
 /*]]>*/

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

@@ -968,7 +968,7 @@
 		let giftPackFlag = false;
 		$target.each(function() {
 			
-			let giftPackYn = $(this).parent().find('input[name="coption"]').attr('giftPackYn');
+			let giftPackYn = $(this).attr('giftPackYn');
 			if ("Y" == giftPackYn ) giftPackFlag = true;
 		});
 		

+ 94 - 90
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html

@@ -56,54 +56,48 @@
 												<th:block th:if="${goodsVideo.videoGb == 'Y'}">
 												<!-- <iframe width="100%" height="100%" th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0&autoplay=1&mute=1'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> -->
 												<div id="utbplayer"></div>
-<script src="https://www.youtube.com/iframe_api"></script><!-- 아래 원문에서 복잡하게 기술되었던 부분 -->
-<script th:inline="javascript">
-/*<![CDATA[*/
-  var player;
-
-  function onYouTubeIframeAPIReady(){
-
-    player = new YT.Player('utbplayer',{
-
-      width:'100%',
-
-      videoId:[[${goodsVideo.kmcKey}]],
-
-      playerVars:{'autoplay':1,'playsinline':1},
-
-      events:{ 'onReady':onPlayerReady,
-    	  	'onStateChange': onPlayerStateChange
-			}
-
-    });
-
-  }
-
-  function onPlayerReady(e){
-
-    e.target.mute();
-
-    e.target.playVideo();
-
-  }
-  
-  var done = false;
-  function onPlayerStateChange(event) {
-    if (event.data == YT.PlayerState.PLAYING && !done) {
-      setTimeout(stopVideo, 6000);
-      done = true;
-    }
-  }
-  function stopVideo() {
-    player.stopVideo();
-  }
-/*]]>*/
-</script>
-
-
+														<script src="https://www.youtube.com/iframe_api"></script><!-- 아래 원문에서 복잡하게 기술되었던 부분 -->
+														<script th:inline="javascript">
+														/*<![CDATA[*/
+														  var player;
+														
+														  function onYouTubeIframeAPIReady(){
+														
+														    player = new YT.Player('utbplayer',{
+														
+														      width:'100%',
+														
+														      videoId:[[${goodsVideo.kmcKey}]],
+														
+														      playerVars:{'autoplay':1,'playsinline':1},
+														
+														      events:{ 'onReady':onPlayerReady,
+														    	  	'onStateChange': onPlayerStateChange
+																	}
+														    });
+														  }
+														
+														  function onPlayerReady(e){
+														    e.target.mute();
+														    e.target.playVideo();
+														  }
+														  
+														  var done = false;
+														  function onPlayerStateChange(event) {
+														    if (event.data == YT.PlayerState.PLAYING && !done) {
+														      setTimeout(stopVideo, 6000);
+														      done = true;
+														    }
+														  }
+														  function stopVideo() {
+														    player.stopVideo();
+														  }
+														/*]]>*/
+														</script>
 												</th:block>
 												<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
-												<iframe id="child" class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?enable_initialize_focus=false&autoplay&mute&controls_activation=none'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+												<button id="prodMovBtn" type="button" class="btn_play" data-setplay="play">동영상보기</button>
+												<iframe id="child" class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey}" frameborder="0" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" oallowfullscreen="true" msallowfullscreen="true"></iframe>
 												</th:block>
 											</div>
 										</div>
@@ -341,13 +335,12 @@
 						</th:block>
 					</div>
 					</th:block>
-					
-					<th:block  th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }" >
+				</div>
+				<div class="mdhtml_box  bnnoti" th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }" >	
 					<div style="height:4rem"></div><!-- 여백용 html -->
 					<th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block>
-					</th:block >
-					
-					
+				</div>	
+				<div class="mdhtml_box"	>
 					<th:block th:if="${goodsInfo.tobeFormYn == 'N' and goodsInfo.goodsDesc != null  and !goodsInfo.goodsDesc.empty}" >
 						<div style="height:4rem"></div><!-- 여백용 html -->
 						<div id="goodsDescHtml"></div>
@@ -439,7 +432,7 @@
 				</th:block>
 
 				<!-- 관리자 에디터입력 내용 노출  하다단 html -->
-				<div class="mdhtml_box" th:if="${goodsInfo.goodsDownDesc != null  and !goodsInfo.goodsDownDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
+				<div class="mdhtml_box  bnnoti" th:if="${goodsInfo.goodsDownDesc != null  and !goodsInfo.goodsDownDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
 				
 				<!-- 브랜드 노출 -->
 				<div class="brand_box">
@@ -2360,6 +2353,7 @@
 	$(document).ready( function() {
 		
 		$('.timer_box').css('display', 'none');
+		
 		//210526_ 추가 : 이미지 style 속성 제거
 		$(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style");
 		
@@ -2368,6 +2362,9 @@
 		var goodsDesc = [[${goodsInfo.goodsDesc}]];
 		if ("N" == [[${goodsInfo.tobeFormYn}]] && !gagajf.isNull(goodsDesc)){
 			$('#goodsDescHtml').html([[${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}]]);
+			
+			$(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style"); // 이 위치에 있어야해요.
+			
 		}
 		
 		var params = new Object();
@@ -2796,18 +2793,22 @@
 			}
 			
 		});
+		
+	};
 	
-	   	let goodsVideoList = [[${goodsVideoList}]];
-		let videoFlag = false;
-		if (goodsVideoList != null){
-			$.each(goodsVideoList, function(idx, goodsVideo) {
-				if ("M" == goodsVideo.videoGb){
-					videoFlag = true;
-					return false;
-				}
-			});
-		}	
-		if (videoFlag){
+   	let goodsVideoList = [[${goodsVideoList}]];
+	let videoFlag = false;
+	if (goodsVideoList != null){
+		$.each(goodsVideoList, function(idx, goodsVideo) {
+			if ("M" == goodsVideo.videoGb){
+				videoFlag = true;
+				return false;
+			}
+		});
+	}	
+	if (videoFlag){
+		var player = document.getElementById('child');
+		player.onload = function() {
 			try {
 				var controller = new VgControllerClient({
 					target_window: document.getElementById('child').contentWindow
@@ -2815,39 +2816,42 @@
 				//console.log(controller.get_screen());
 				//controller.enable_fullscreen_button(true);
 				// 여기서부터 이벤트 리스너를 등록하거나, 웹페이지 Element에 메소드를 bind하면 됩니다.
+				
+				// 클릭 인지 테스트.
+				var MovBtn = document.getElementById("prodMovBtn");
+					MovBtn.addEventListener("click", function() {
+						$(this).hide();
+						controller.play();
+					});
+
+				controller.on('pause', function() { //일시정지 일때 이벤트 실행.
+					$("#prodMovBtn").show();
+				});
+				
+				$(window).scroll(function(){
+					var scrollTop= $(window).scrollTop();
+					var movHeight = $(".movbox").outerHeight()/2.5;
+					console.log(movHeight);
+					console.log(scrollTop);
+					if (scrollTop > movHeight){
+						controller.pause();
+						return false;
+					} else {
+						controller.play();
+						return false;
+						//controller.set_control_visibility(false);
+					}
+				});
+
 			} catch(e) {
 				// Videogateweay Controller Library는 window.postMessage API를 이용하기 때문에
 				// 해당 기능을 지원하지 않는 웹브라우져에서는 동작하지 않습니다.
 				// 이 부분에 적절한 fail-over 코드를 추가하여 주십시요.
 			}
-			controller.mute();
-			controller.play();
-			controller.set_control_visibility(false);
 			
-			$(window).scroll(function(){
-				var scrollTop= $(window).scrollTop();
-				var itemTop=$('.descript_box').offset().top;
-				var winHeight = $(window).height();
-				//console.log(winHeight-scrollTop);
-				//console.log(winHeight/1.5);
-				if (winHeight-scrollTop <= winHeight/1.5){
-					controller.pause();
-				} else {
-					controller.play();
-					controller.set_control_visibility(false);
-				}
-		
-				controller.on('done', function() {
-					controller.play();
-					controller.set_control_visibility(false);
-				});
-			}); 
-			
-		}
-	   
-		
-		
-	};
+		};
+	}
+   
 	
 /*]]>*/
 </script>

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

@@ -410,7 +410,7 @@ var fnCancel = function() {
 		} else {
 			mcxDialog.alert('이미 배송처리 되어 취소 처리에 실패 하였습니다.');
 		}
-	});
+	}, true);
 }
 
 // 취소 수량 변경 이벤트 처리

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

@@ -88,7 +88,7 @@
 												<th:block th:if="${cre.chgOrdDtlNo} == ${exchange.ordDtlNo}">
 													<!-- 세트상품일때 -->
 													<th:block th:if="${cre.goodsType} == 'G056_S'">
-														<th:block th:each-="option, index2, ${exchange.colorNmArr}">
+														<th:block th:each="option, index2 : ${exchange.colorNmArr}">
 															<div class="option">
 																<em th:text="${exchange.itemNmArr[index2.index]}"></em>
 																<em th:text="${option}"></em>

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

@@ -438,8 +438,8 @@ var fnExchange = function() {
 		if (chgOrdDtlNoArr.includes($(item).attr('ordDtlNo')) && !gagajf.isNull($(item).val())) {
 			let json 		= $(item).val();
 			let jsonData 	= JSON.parse(json);
-			let cancelReq 	= {};
 			$.each(jsonData, function (index, chgOpt) {
+				let cancelReq 	= {};
 				cancelReq.ordDtlNo 			= chgOpt.ordDtlNo;
 				cancelReq.ordDtlItemSq 		= chgOpt.ordDtlItemSq;
 				cancelReq.delvFeeCd 		= delvFeeCd;

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

@@ -144,7 +144,7 @@ var fnGetPointTableInfo = function(param) {
 	if(param != null && param.length > 0){
 		tag += '<ul>';
 		$.each(param, function(idx,item){
-			tag += ' <li>';
+			tag += ' <li>'; 
 			tag += ' 	<div>';
 			if(item.pntAmt > 0){
 				tag += '		<span class="tag primary">적립</span>';

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

@@ -405,11 +405,11 @@ var fnCancel = function() {
 			// 취소 처리
 			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 				cfnGoToPage(_PAGE_NOMEMBER_ORDER_LIST);
-			}, true);
+			});
 		} else {
 			mcxDialog.alert('이미 배송처리 되어 취소 처리에 실패 하였습니다.');
 		}
-	});
+	}, true);
 }
 
 // 취소 수량 변경 이벤트 처리

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

@@ -718,12 +718,12 @@
 				data.reqGbn = 'cnclComplete';
 				data.ordDtlNoArr = ordDtlNoArr;
 				data.cnclRtnReqQtyArr = cnclRtnReqQtyArr;
-				console.log(data);
+
 				let jsonData = JSON.stringify(data);
 				
 				gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 					cfnGoToPage(_PAGE_NOMEMBER_ORDER_LIST);
-				});
+				}, true);
 			}
 		});
 	}
@@ -782,7 +782,7 @@
 
 		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 			cfnGoToPage(_PAGE_NOMEMBER_ORDER_DETAIL);
-		});
+		}, true);
 	}
 </script>
 

+ 11 - 1
src/main/webapp/WEB-INF/views/web/callcenter/GoodsQnaFormWeb.html

@@ -116,6 +116,16 @@
         return tag;
     }
 	
+
+	var fnSplitBr = function(obj){
+        let tag = '';
+        if(!gagajf.isNull(obj)){
+            var brText = obj;
+            tag = brText.split('&lt;br/&gt');
+        }
+        return tag[0];
+    }
+	
 	var fnGetListCallback = function(result) {
 		$('#ulQna').html('');
 
@@ -129,7 +139,7 @@
 				tag += '				<span class="fold_state ' + (item.ansStat == "G060_10" ? "doing" : "done") + '">' + item.ansStatNm + '</span>\n'; //답변완료 : done / 처리중 : doing
 				tag += '				<div class="fold_tit">\n';
 				tag += '					<span class="prod">' + item.goodsNm + ' ' + item.relGoodsCd + '</span>\n';
-				tag += '					<span>' + fnReplaceBr(item.questContent.escapeHtml()) + '</span>\n';
+				tag += '					<span>' + fnSplitBr(item.questContent.escapeHtml()) + '</span>\n';
 				tag += '				</div>\n';
 				tag += '				<span class="data">' + item.questDt + '</span>\n';
 				tag += '			</div>\n';

+ 91 - 0
src/main/webapp/WEB-INF/views/web/callcenter/OneToOnePhotoFormWeb.html

@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : GoodsReviewPhotoFormMob.html
+ * @desc	: 상품평 - 포토/영상 리스트 팝업
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE		 AUTHOR	  DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.008   eskim		최초 작성
+ *******************************************************************************
+ -->
+<!-- 댓글 이미지 팝업 -->
+<!-- <div class="modal fade thumb_img_pop" id="thumbImgPop" tabindex="-1" role="dialog" aria-labelledby="thumbImgLabel" aria-hidden="true"> -->
+        <div class="modal-dialog" role="document">
+            <div class="modal-content" th:with="frontUrl=${@environment.getProperty('domain.front')}, imgView=${@environment.getProperty('upload.image.view')}">
+				<div class="modal-header sr-only">
+                    <h5 class="modal-title" id="thumbImgLabel">이미지 상세보기</h5>
+                </div>
+                <div class="modal-body">
+                    <div class="pop_cont">
+ 						<div class="swiper-container">
+							<div class="swiper-wrapper">
+								<!-- 이미지 슬라이드 영역 -->
+							<th:block th:each="a, stat : ${imgList}">
+								<div class="swiper-slide">
+									<div class="pop_img" th:style="${'background-image:url('+imgView+'/'+a.sysFileNm+');'}">
+									</div>
+								</div>
+							</th:block>
+							</div>
+						</div>
+						<div class="swiper-button-next"></div>
+						<div class="swiper-button-prev"></div>						
+						<div class="swiper-pagination"></div>
+                    </div>
+                </div>
+            </div>
+        </div>        
+<!--     </div> -->
+	<!-- //댓글 이미지 팝업 -->	
+<a href="javascript:void(0);" rel="modal:close"	onclick="cfCloseLayer('layer_review_photo')" class="close-modal">Close</a>
+<script th:inline="javascript">
+
+
+
+$(document).ready( function() {
+	let attchSq = 0; 
+	let img = [[${imgList[1].sysFileNm}]];
+	if (!gagajf.isNull( [[${counsel.rnum}]])){
+		attchSq = [[${counsel.rnum}]]-1;
+	} 
+	
+	if (!gagajf.isNull(img)) {
+		var contactPopSwiper = new Swiper('.thumb_img_pop .swiper-container', {
+			navigation: {
+				nextEl: '.thumb_img_pop .swiper-button-next',
+				prevEl: '.thumb_img_pop .swiper-button-prev',
+			},
+			pagination: {
+				el: '.thumb_img_pop .swiper-pagination',
+				clickable: true,
+			},
+					
+			observer:true,
+			observeParents: true,
+		});		
+		
+		contactPopSwiper.slideTo(attchSq, 0, false);
+		contactPopSwiper.update();
+	}
+	else{
+		$(".swiper-pagination").append('<span class="swiper-pagination-bullet swiper-pagination-bullet-active" tabindex="0" role="button" aria-label="Go to slide 1"></span>');
+		$(".swiper-pagination").addClass("swiper-pagination-clickable swiper-pagination-bullets");
+		$(".swiper-button-next").addClass("swiper-button-disabled");
+		$(".swiper-button-prev").addClass("swiper-button-disabled");
+		
+	}
+	
+	
+
+
+});
+/*<![CDATA[*/
+	
+/*]]>*/
+</script>
+</html>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/callcenter/OneToOneQnaFormWeb.html

@@ -208,13 +208,13 @@
 					
 					if (!gagajf.isNull(item.sysFileNm1)) {
 						tag += '					<span class="thumb_pic">\n';
-						tag += '						<img src="' + _uploadImageUrl + '/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
+						tag += '						<img src="' + _uploadImageUrl + '/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'" onclick="cfOneToPhotoDetail(\''+item.counselSq+'\', \'1\');">\n';
 						tag += '					</span>\n';
 					}
 					
 					if (!gagajf.isNull(item.sysFileNm2)) {
 						tag += '					<span class="thumb_pic">\n';
-						tag += '						<img src="' + _uploadImageUrl + '/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
+						tag += '						<img src="' + _uploadImageUrl + '/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'" onclick="cfOneToPhotoDetail(\''+item.counselSq+'\', \'2\');">\n';
 						tag += '					</span>\n';
 					}
 					

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

@@ -310,7 +310,7 @@
 				// 취소 처리
 				gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 					cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);
-				}, true);
+				});
 			} else {
 				mcxDialog.alert('이미 배송처리 되어 취소 처리에 실패 하였습니다.');
 			}

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

@@ -432,8 +432,8 @@
 			if (chgOrdDtlNoArr.includes($(item).attr('ordDtlNo')) && !gagajf.isNull($(item).val())) {
 				let json = $(item).val();
 				let jsonData = JSON.parse(json);
-				let cancelReq = {};
 				$.each(jsonData, function (index, chgOpt) {
+					let cancelReq = {};
 					cancelReq.ordDtlNo = chgOpt.ordDtlNo;
 					cancelReq.ordDtlItemSq = chgOpt.ordDtlItemSq;
 					cancelReq.delvFeeCd = delvFeeCd;

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

@@ -593,11 +593,11 @@
 						// 전체취소 처리
 						gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 							cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);
-						}, true);
+						});
 					} else {
 						mcxDialog.alert('이미 배송처리 되어 전체취소 처리에 실패 하였습니다.');
 					}
-				});
+				}, true);
 				
 				
 			}
@@ -675,7 +675,7 @@
 		
 		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 			cfnGoToPage(_PAGE_MYPAGE_ORDER_DETAIL + ordNo);
-		});
+		}, true);
 	}
 	
 	// 전체구매확정 버튼 클릭 이벤트

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

@@ -308,7 +308,7 @@
 				// 취소 처리
 				gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 					cfnGoToPage(_PAGE_NOMEMBER_ORDER_LIST);
-				}, true);
+				});
 			} else {
 				mcxDialog.alert('이미 배송처리 되어 취소 처리에 실패 하였습니다.');
 			}

+ 2 - 2
src/main/webapp/WEB-INF/views/web/mypage/NoMemberOrderDetailFormWeb.html

@@ -444,11 +444,11 @@
 						// 전체취소 처리
 						gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 							cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);
-						}, true);
+						});
 					} else {
 						mcxDialog.alert('이미 배송처리 되어 전체취소 처리에 실패 하였습니다.');
 					}
-				});
+				}, true);
 			}
 		});
 	}

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

@@ -2,15 +2,15 @@
 <html lang="ko" xmlns:th="http://www.thymeleaf.org">
 <!--
  *******************************************************************************
- * @source  : GoodsReviewPhotoFormMob.html
- * @desc	: 상품평 - 포토/영상 리스트 팝업
+ * @source  : PlanningReplyPhotoFormWeb.html
+ * @desc	: 기획전 댓글 - 포토 리스트 팝업
  *============================================================================
  * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE		 AUTHOR	  DESCRIPTION
  * ===  ===========  ==========  =============================================
- * 1.0  2021.04.008   eskim		최초 작성
+ * 1.0  2021.04.08   sowon		최초 작성
  *******************************************************************************
  -->
 <!-- 댓글 이미지 팝업 -->

+ 1 - 1
src/main/webapp/biz/mypage.js

@@ -481,7 +481,7 @@ var fnCreCancel = function(param, noMember) {
 				} else {
 					cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);
 				}
-			});
+			}, true);
 		}
 	});
 }

+ 2 - 2
src/main/webapp/ux/mo/css/common_m.css

@@ -935,9 +935,9 @@ section.main.scr, section.ev_list.scr, section.dp_exhibition.scr, section.dp_loo
 
 /* footer */
 footer{background-color: #f1f1f1;}
-footer .btn_top{position: fixed; bottom: 9%; right: 2.0rem; opacity: 0; background-color: rgba(0, 0, 0, 0.4); width: 4.1rem; height: 4.0rem; font-size: 0; z-index: 500; background:url(/images/mo/mo_btn_top.png) no-repeat;}
+footer .btn_top{position: fixed; bottom: 9%; right: 2.0rem; opacity: 0; background-color: rgba(0, 0, 0, 0.4); width: 4.1rem; height: 4.0rem; font-size: 0; z-index: 499; background:url(/images/mo/mo_btn_top.png) no-repeat;}
 footer .btn_top span{display: block;width: 2.4rem;height: 2.4rem;margin: 0 auto;position: relative;opacity: 1;color: #222222;font-size: 1.1rem;font-weight: 600;line-height: 3.4rem;letter-spacing: -0.025em;}
-footer .btn_back{position: fixed; bottom: 9%; left: 2.0rem; opacity: 0; background-color: rgba(0, 0, 0, 0.4); width: 4.1rem; height: 4.0rem; font-size: 0; z-index: 500; background:url(/images/mo/mo_btn_back.png) no-repeat; bottom: calc(env(safe-area-inset-bottom) + 6.5rem);}
+footer .btn_back{position: fixed; bottom: 9%; left: 2.0rem; opacity: 0; background-color: rgba(0, 0, 0, 0.4); width: 4.1rem; height: 4.0rem; font-size: 0; z-index: 499; background:url(/images/mo/mo_btn_back.png) no-repeat; bottom: calc(env(safe-area-inset-bottom) + 6.5rem);}
 footer .btn_back span{display: block;width: 2.4rem;height: 2.4rem;margin: 0 0.6rem;position: relative;opacity: 1;color: #222222;font-size: 1.1rem;font-weight: 600;line-height: 3.4rem;letter-spacing: -0.025em; text-indent:-999rem;}
 footer .f1{background-color: #f1f1f1;padding: 0 0 4.5rem; position: relative;}
 footer .f1 .inner{padding: 0 2.0rem 2.0rem;}

+ 24 - 23
src/main/webapp/ux/pc/js/common-ui.js

@@ -558,31 +558,32 @@ $(document).ready( function() {
 * * * * * * * * * * * * * * * * * * * * * */
 $(document).ready( function() {
 
+	// 210611_ 개발 사용 불가, 스크립트 제거
 	//팝업 - 상품썸네일 크게보기
-	$(document).on('click','.pd_detail .area_pic .thumb_list_wrap ul li a',function(e){
-		$('body').addClass('lock');
-		$("#pdItemThumbPop .full_pop_container").empty();
-		var thumbIndex = $(this).index() + 1;
-		var thumbImglength = $('.pd_detail .area_pic .thumb_list_wrap ul li').length;
-		var popThumbImgHtml = "";
-		for (i = 1; i <= thumbImglength; i++) {
-			//var thumbImg = $(this).find('img');
-			var thumbContentHtml = $('.pd_detail .area_pic .thumb_list_wrap ul li:nth-child('+i+') a .thumb').html();
-			popThumbImgHtml += "<div id=popThumb"+i+" class='scaleview'>" + thumbContentHtml + "</div>";
-		}
-		$("#pdItemThumbPop .full_pop_container").append(popThumbImgHtml);
-		$("#pdItemThumbPop").show(); 
+	// $(document).on('click','.pd_detail .area_pic .thumb_list_wrap ul li a',function(e){
+	// 	$('body').addClass('lock');
+	// 	$("#pdItemThumbPop .full_pop_container").empty();
+	// 	var thumbIndex = $(this).index() + 1;
+	// 	var thumbImglength = $('.pd_detail .area_pic .thumb_list_wrap ul li').length;
+	// 	var popThumbImgHtml = "";
+	// 	for (i = 1; i <= thumbImglength; i++) {
+	// 		//var thumbImg = $(this).find('img');
+	// 		var thumbContentHtml = $('.pd_detail .area_pic .thumb_list_wrap ul li:nth-child('+i+') a .thumb').html();
+	// 		popThumbImgHtml += "<div id=popThumb"+i+" class='scaleview'>" + thumbContentHtml + "</div>";
+	// 	}
+	// 	$("#pdItemThumbPop .full_pop_container").append(popThumbImgHtml);
+	// 	$("#pdItemThumbPop").show(); 
 	
-		var scrollThumbPop = $('#popThumb'+thumbIndex).offset().top;
-		var currentTop = $(window).scrollTop();
-		$('#pdItemThumbPop').animate({scrollTop : scrollThumbPop - currentTop}, 1000);
-		return false;
-	}).on('click','#btn_close_itemThumbPop, .pd_itemthumb_pop .scaleview img',function(e){
-		$("#pdItemThumbPop").scrollTop(0);
-		$("#pdItemThumbPop").hide(); 
-		$('body').removeClass('lock');
-		return false;
-	});			                
+	// 	var scrollThumbPop = $('#popThumb'+thumbIndex).offset().top;
+	// 	var currentTop = $(window).scrollTop();
+	// 	$('#pdItemThumbPop').animate({scrollTop : scrollThumbPop - currentTop}, 1000);
+	// 	return false;
+	// }).on('click','#btn_close_itemThumbPop, .pd_itemthumb_pop .scaleview img',function(e){
+	// 	$("#pdItemThumbPop").scrollTop(0);
+	// 	$("#pdItemThumbPop").hide(); 
+	// 	$('body').removeClass('lock');
+	// 	return false;
+	// });			                
 
 	// 상품 대표설명 > 좌측 상품썸네일 navi, 우측 상품정보 고정 
 	$(window).scroll(function(){

+ 22 - 0
src/main/webapp/ux/style24_link.js

@@ -115,6 +115,7 @@ const _PAGE_CUSTOMER_GRADE_BENEFIT = _frontUrl + "/planning/event/custgrade/bene
 const _PAGE_FAQ = _frontUrl + "/callcenter/faq/form";									// 고객센터 > FAQ
 const _PAGE_ONETOONE_QNA = _frontUrl + "/callcenter/onetoone/qna/form";					// 고객센터 > 1:1문의
 const _PAGE_ONETOONE_QNA_REG = _frontUrl + "/callcenter/onetoone/qna/register/form";	// 고객센터 > 1:1문의등록
+const _PAGE_ONETOONE_QNA_DETAIL_LAYER = _frontUrl + "/callcenter/onetoone/photo/detail/layer";	// 고객센터 > 1:1 상세(포토)
 const _PAGE_GOODS_QNA = _frontUrl + "/callcenter/goods/qna/form";						// 고객센터 > 상품문의
 const _PAGE_NOTICE = _frontUrl + "/callcenter/notice/form";								// 고객센터 > 공지사항
 
@@ -710,6 +711,27 @@ function cfMoPlanReplyDetail(planSq, planEntrySq, planEntryAtSq, attachSq) {
 	cfnOpenLayer(_PAGE_PLANNING_REPLY_DETAIL_LAYER+params, 'thumbImgPop');
 }
 
+/**
+* @type   : function
+* @access : public
+* @desc   : 댓글 이미지 팝업(웹) - 1:1 문의
+* <pre>
+*		cfOneToPhotoDetail(counselSq, attachSq);
+* </pre>
+*/
+function cfOneToPhotoDetail(counselSq, rnum) {
+	var str = '<div class="modal fade thumb_img_pop" id="thumbImgPop" tabindex="-1" role="dialog" aria-labelledby="thumbImgLabel" aria-hidden="true"></div>';
+
+	if ($('#thumbImgPop').length == 0) {
+		$('body').append(str);
+	}
+	
+	var params = '?counselSq=' + counselSq;
+	if (typeof (rnum) != 'undefined') params += "&rnum=" + rnum;
+	
+	cfnOpenLayer(_PAGE_ONETOONE_QNA_DETAIL_LAYER + params, 'thumbImgPop');
+}
+
 /**
  * @type   : function
  * @access : public