Bladeren bron

Merge branch 'develop' into bin2107

bin2107 5 jaren geleden
bovenliggende
commit
5f24fbe4bf
40 gewijzigde bestanden met toevoegingen van 686 en 564 verwijderingen
  1. 10 0
      src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java
  2. 7 6
      src/main/java/com/style24/front/biz/service/TsfCustomerService.java
  3. 9 0
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  4. 12 0
      src/main/java/com/style24/front/biz/service/TsfPlanningService.java
  5. 11 2
      src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  6. 2 6
      src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  7. 36 3
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  8. 8 2
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  9. 77 7
      src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml
  10. 2 2
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  11. 11 4
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml
  12. 23 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml
  13. 3 2
      src/main/webapp/WEB-INF/views/mob/SigninFormMob.html
  14. 19 1
      src/main/webapp/WEB-INF/views/mob/goods/GoodsIncludeFormMob.html
  15. 18 1
      src/main/webapp/WEB-INF/views/mob/goods/GoodsReviewFormMob.html
  16. 10 102
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCancelFormMob.html
  17. 35 8
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreExchangeDetailFormMob.html
  18. 11 7
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreListInfoMob.html
  19. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreReturnDetailFormMob.html
  20. 35 210
      src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderDetailFormMob.html
  21. 9 0
      src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListFormMob.html
  22. 42 40
      src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListInfoMob.html
  23. 28 29
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReturnFormMob.html
  24. 14 18
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCancelFormMob.html
  25. 30 8
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreExchangeDetailFormMob.html
  26. 3 3
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreListInfoMob.html
  27. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreReturnDetailFormMob.html
  28. 10 14
      src/main/webapp/WEB-INF/views/mob/mypage/NoMemberReturnFormMob.html
  29. 2 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html
  30. 72 4
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  31. 1 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailReviewFormWeb.html
  32. 20 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html
  33. 2 2
      src/main/webapp/WEB-INF/views/web/goods/GoodsReviewDetailFormWeb.html
  34. 3 3
      src/main/webapp/WEB-INF/views/web/goods/GoodsReviewFormWeb.html
  35. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageCreReturnDetailFormWeb.html
  36. 4 4
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderDetailFormWeb.html
  37. 5 5
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html
  38. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreReturnDetailFormWeb.html
  39. 96 62
      src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html
  40. 2 2
      src/main/webapp/ux/style24_link.js

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java

@@ -492,4 +492,14 @@ public interface TsfPlanningDao {
 	 */
 	Integer getShotPlanSq(Plan plan);
 	
+	/**
+	 * 기획전 컨텐츠 정보 
+	 *
+	 * @param 기획전 번호
+	 * @return
+	 * @author sowon
+	 * @date 2021. 6. 3
+	 */
+	Collection<Plan> getPlanContentInfo(Plan plan);
+	
 }

+ 7 - 6
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -8,6 +8,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
 import com.style24.core.biz.service.TscKakaotalkService;
+import com.style24.core.biz.service.TscMailService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -66,10 +67,10 @@ public class TsfCustomerService {
 	private TscKakaotalkService kakaotalkService;
 
 	@Autowired
-	private ObjectMapper objectMapper;
+	private TscMailService mailService;
 
 	@Autowired
-	private Environment env;
+	private ObjectMapper objectMapper;
 
 	/**
 	 * 고객아이디 찾기
@@ -296,7 +297,7 @@ public class TsfCustomerService {
 			// 이메일 발송
 			try {
 				if (StringUtils.isNotBlank(customer.getEmail())) {
-					// TODO : 2021.02.23 이메일 모듈 개발 필요 jsshin
+					mailService.sendJoinCongrat(customer, coupon, customer.getCustNo());
 				}
 			} catch (Exception e) {
 				log.error("error", e);
@@ -351,16 +352,16 @@ public class TsfCustomerService {
 					kakaotalkService.sendJoinCongrat(customer, coupon, customer.getCustNo());
 				}
 			} catch (Exception e) {
-				//log.error("error", e);
+				log.error("error", e);
 			}
 
 			// 이메일 발송
 			try {
 				if (StringUtils.isNotBlank(customer.getEmail())) {
-					// TODO : 2021.02.23 이메일 모듈 개발 필요 jsshin
+					mailService.sendJoinCongrat(customer, coupon, customer.getCustNo());
 				}
 			} catch (Exception e) {
-				//log.error("error", e);
+				log.error("error", e);
 			}
 		}
 

+ 9 - 0
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -418,6 +418,9 @@ public class TsfOrderService {
 				}
 
 				throw new IllegalArgumentException("결제 정보 저장 실패. 새로고침 후 다시 시작해주세요.");
+			} else {
+				// TB_DELIVERY_FEE PAY_SQ 등록
+				coreOrderDao.updateDeliveryFeePaySq(result);
 			}
 		} catch(Exception e) {
 			e.printStackTrace();
@@ -456,6 +459,9 @@ public class TsfOrderService {
 				coreKakaoPayService.kakaoPayRollBack(payment);
 
 				throw new IllegalArgumentException("결제 정보 저장 실패. 새로고침 후 다시 시작해주세요.");
+			} else {
+				// TODO
+				// 배송비 pay_sq update 처리
 			}
 		} catch(Exception e) {
 			e.printStackTrace();
@@ -494,6 +500,9 @@ public class TsfOrderService {
 				coreNaverPayService.naverPayRollBack(payment);
 
 				throw new IllegalArgumentException("결제 정보 저장 실패. 새로고침 후 다시 시작해주세요.");
+			} else {
+				// TODO
+				// 배송비 pay_sq update 처리
 			}
 		} catch(Exception e) {
 			e.printStackTrace();

+ 12 - 0
src/main/java/com/style24/front/biz/service/TsfPlanningService.java

@@ -683,4 +683,16 @@ public class TsfPlanningService {
 		return planningDao.getShotPlanSq(plan);
 	}
 	
+	/**
+	 * 기획전 컨텐츠 정보 
+	 *
+	 * @param 기획전 번호
+	 * @return
+	 * @author sowon
+	 * @date 2021. 6. 3
+	 */
+	 public Collection<Plan> getPlanContentInfo(Plan plan) {
+		 return planningDao.getPlanContentInfo(plan);
+	 }
+	
 }

+ 11 - 2
src/main/java/com/style24/front/biz/web/TsfCustomerController.java

@@ -3,6 +3,7 @@ package com.style24.front.biz.web;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
+import com.style24.core.biz.service.TscMailService;
 import com.style24.front.biz.service.TsfCouponService;
 import com.style24.persistence.domain.Coupon;
 import org.apache.commons.lang3.StringUtils;
@@ -57,6 +58,9 @@ public class TsfCustomerController extends TsfBaseController {
 	@Autowired
 	private TscKakaotalkService kakaotalkService;
 
+	@Autowired
+	private TscMailService mailService;
+
 	@Autowired
 	private NiceCertify niceCertify;
 
@@ -187,8 +191,13 @@ public class TsfCustomerController extends TsfBaseController {
 			// 비밀번호 수정
 			customerService.saveCustomerPassword(customer);
 
-			if (StringUtils.isNotBlank(customer.getCellPhnno())) {
-				kakaotalkService.sendCustomerTempPassword(customer, customer.getCustNo());
+			if (StringUtils.isNotBlank(customer.getEmail())) {
+				try {
+					mailService.sendCustomerTempPassword(customer, customer.getCustNo());
+				} catch (Exception e) {
+					log.error(e.getMessage());
+				}
+
 			}
 		}
 

+ 2 - 6
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -295,11 +295,7 @@ public class TsfGoodsController extends TsfBaseController {
 			contents.setPreview(paramsGoods.getPreview());
 			contents.setViewDt(paramsGoods.getViewDt());
 			contents.setMaxRow(1);
-			if ("P".equals(paramsGoods.getFrontGb())) {
-				contents.setCateNo(1714);
-			} else {
-				contents.setCateNo(1724);
-			}
+			contents.setCateNo(1714);
 			mav.addObject("goodsBannerList", displayService.getContentsList(contents));
 		}
 
@@ -1457,7 +1453,7 @@ public class TsfGoodsController extends TsfBaseController {
 	 * @since 2021. 3. 26
 	 */
 	@PostMapping("/detail/review/frame")
-	public ModelAndView goodsDetailReviewForm(Goods paramsGoods) {
+	public ModelAndView goodsDetailReviewForm(@RequestBody Goods paramsGoods) {
 		ModelAndView mav = new ModelAndView();
 		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
 		setGoods(paramsGoods);

+ 36 - 3
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -26,6 +26,7 @@ import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.style24.core.biz.service.TscCouponService;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.biz.service.TscEnvsetService;
+import com.style24.core.biz.service.TscKakaotalkService;
 import com.style24.core.biz.service.TscKcpService;
 import com.style24.core.biz.service.TscOrderChangeService;
 import com.style24.core.biz.service.TscOrderRefundService;
@@ -150,6 +151,9 @@ public class TsfMypageController extends TsfBaseController {
 	@Autowired
 	private TscEnvsetService eventService;
 
+	@Autowired
+	private TscKakaotalkService coreKakaotalkService;
+
 	/**
 	 * 마이페이지 메인 화면
 	 *
@@ -2446,7 +2450,7 @@ public class TsfMypageController extends TsfBaseController {
 		mav.addObject("orderList"		, 	orderList);
 		mav.addObject("orderListCnt"	, 	orderList.size());
 		mav.addObject("pageNo"			, 	order.getPageNo());
-		
+
 		mav.setViewName(super.getDeviceViewName("mypage/MypageOrderListInfo"));
 
 		return mav;
@@ -2490,7 +2494,7 @@ public class TsfMypageController extends TsfBaseController {
 	}
 
 	/**
-	 * 마이페이지 주문목록 사전 정보 조회 (모바일)
+	 * 마이페이지 취반교목록 사전 정보 조회 (모바일)
 	 *
 	 * @param Order
 	 * @return ModelAndView
@@ -2516,7 +2520,7 @@ public class TsfMypageController extends TsfBaseController {
 	}
 
 	/**
-	 * 마이페이지 주문목록 조회 (모바일)
+	 * 마이페이지 취반교목록 조회 (모바일)
 	 *
 	 * @param Order
 	 * @return ModelAndView
@@ -2542,4 +2546,33 @@ public class TsfMypageController extends TsfBaseController {
 		return mav;
 	}
 
+	/**
+	 * 선물하기 알림톡 재전송
+	 * 
+	 * @param order
+	 * @return GagaResponse
+	 * @author card007
+	 * @since 2021. 06. 03
+	 */
+	@ResponseBody
+	@PostMapping("/gift/kakao/resend")
+	public GagaResponse resendGiftKakao(@RequestBody Order order) {
+		// TODO
+		// 선물하기 알림톡 이전 발송이력 조회
+		
+		// 선물하기 알림톡 전송 관련 정보 조회
+		GagaMap resultMap = coreOrderService.getOrderCompleteInfo(order);
+		Order orderInfo = (Order) resultMap.get("orderInfo");
+		orderInfo.setGoodsNm((String) resultMap.get("goodsNm"));
+		orderInfo.setGoodsCnt(String.valueOf(resultMap.get("goodsCnt")));
+		
+		try {
+			// 선물하기 알림톡 전송
+			coreKakaotalkService.sendOrderGiftComplete(orderInfo, TsfSession.getInfo().getCustNo());
+		} catch (Exception e) {
+			return super.error(e.getMessage());
+		}
+		
+		return super.ok();
+	}
 }

+ 8 - 2
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -198,11 +198,15 @@ public class TsfPlanningController extends TsfBaseController {
 		mav.addObject("fsrcInfoBtm", planningService.getPlanFsrcInfo(plan));
 
 		// 리뷰
+		plan.setTmplType("G082_10");
 		mav.addObject("reviewInfo", planningService.getPlanReviewInfo(review));
+		mav.addObject("reviewContent", planningService.getPlanContentInfo(plan));
 
 		// 쿠폰
+		plan.setTmplType("G082_20");
 		mav.addObject("couponInfo", planningService.getPlanCouponInfo(coupon));
-
+		mav.addObject("couponContent", planningService.getPlanContentInfo(plan));
+		
 		// 이미지
 		mav.addObject("imageInfo", planningService.getPlanImageInfo(plan));
 		
@@ -213,15 +217,17 @@ public class TsfPlanningController extends TsfBaseController {
 		// 상품1열 전시
 		plan.setTmplType("G082_50");
 		mav.addObject("goods1Info", planningService.getPlanGoodsDisplayList(plan));
+		mav.addObject("goods1Content", planningService.getPlanContentInfo(plan));
 
 		// 상품2열 전시
 		plan.setTmplType("G082_51");
-
 		mav.addObject("goods2Info", planningService.getPlanGoodsDisplayList(plan));
+		mav.addObject("goods2Content", planningService.getPlanContentInfo(plan));
 
 		// 상품4열 전시
 		plan.setTmplType("G082_52");
 		mav.addObject("goods4Info", planningService.getPlanGoodsDisplayList(plan));
+		mav.addObject("goods4Content", planningService.getPlanContentInfo(plan));
 		
 		// 코너 목록
 		mav.addObject("planCornerList", planningService.getPlanCornerList(plan));

+ 77 - 7
src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml

@@ -160,23 +160,92 @@
 	<!--회원가입 쿠폰-->
 	<select id="getJoinCoupon" parameterType="Coupon" resultType="Coupon">
 		/* TsfCoupon.getJoinCoupon */
+		WITH TAB_COUPON_REFVAL1 AS (
+		    SELECT CR.CPN_ID
+		         , CR.CPN_TARGET
+		         , CASE WHEN CR.CPN_TARGET = 'G260_10' /*상품*/ THEN (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CR.REF_VAL AND GOODS_STAT = 'G008_90')
+		                WHEN CR.CPN_TARGET = 'G260_11' /*카테고리*/ THEN
+		                    CASE WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL),0) > 0
+		                              THEN (SELECT CATE1_NM FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL LIMIT 1)
+		                         WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL),0) > 0
+		                              THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL LIMIT 1)
+		                         WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL LIMIT 1)
+		                         WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL LIMIT 1)
+		                    END
+		                WHEN CR.CPN_TARGET = 'G260_12' /*브랜드*/ THEN (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = CR.REF_VAL AND USE_YN = 'Y')
+		                WHEN CR.CPN_TARGET = 'G260_13' /*업체*/ THEN (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = CR.REF_VAL AND USE_YN = 'Y' AND SUPPLY_STAT = 'G010_30')
+		           END AS REF_VAL
+		         , RANK() OVER(PARTITION BY CR.CPN_ID, CR.CPN_TARGET ORDER BY REF_VAL) AS RK
+		    FROM   TB_COUPON_REFVAL CR
+		    WHERE  CR.CPN_TARGET != 'G260_14' /*제외상품아닌넘*/
+		    AND    CR.CPN_ID = (
+		                        SELECT GRADE_CPN_ID1
+		                        FROM   TB_CUST_GRADE_POLICY
+		                        WHERE  GRADE_CD = #{custGrade}
+		                        AND    USE_YN = 'Y'
+                                )
+		)
+		, TAB_COUPON_REFVAL2 AS (
+		    SELECT CPN_ID
+		         , CPN_TARGET
+		         , GROUP_CONCAT(REF_VAL ORDER BY RK ASC SEPARATOR '/' ) AS REF_VAL
+		         , (SELECT COUNT(*)
+		            FROM   TAB_COUPON_REFVAL1
+		            WHERE  CPN_ID = CR.CPN_ID
+		            AND    CPN_TARGET = CR.CPN_TARGET)                  AS CNT
+		    FROM   TAB_COUPON_REFVAL1 CR
+		    WHERE  1 = 1
+		    AND    (
+		            (CPN_TARGET != 'G260_12' AND RK = 1) /*브랜드 외는 1개만 노출*/
+		            OR
+		            (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
+		           )
+		    GROUP  BY CPN_ID, CPN_TARGET
+		)
 		SELECT CP.CPN_ID
 		     , CP.END_ALIM_YN
 		     , CASE WHEN #{frontGb} = 'P' THEN CP.DC_PVAL
 		            WHEN #{frontGb} = 'M' THEN CP.DC_MVAL
 		            WHEN #{frontGb} = 'A' THEN CP.DC_AVAL
 		            ELSE CP.DC_AVAL                                              END AS DC_VAL
+		     , CASE WHEN CP.DC_WAY = 'G240_10' THEN '원'
+		            ELSE '%'
+		       END                                                                   AS DC_WAY
 		     , CASE WHEN CP.PD_GB = 'D' THEN DATE_FORMAT(NOW(), '%Y%m%d%H%i%S')
-		            ELSE DATE_FORMAT(CP.AVAIL_STDT, '%Y%m%d%H%i%S')              END AS AVAIL_STDT
+		            ELSE DATE_FORMAT(CP.AVAIL_STDT, '%Y%m%d%H%i%S')                END AS AVAIL_STDT
 		     , CASE WHEN CP.PD_GB = 'D' THEN DATE_FORMAT(CONCAT(CURRENT_DATE + INTERVAL CP.AVAIL_DAYS DAY, ' 23:59:59'), '%Y%m%d%H%i%S')
-		            ELSE  DATE_FORMAT(CP.AVAIL_EDDT, '%Y%m%d%H%i%S')             END AS AVAIL_EDDT
+		            ELSE  DATE_FORMAT(CP.AVAIL_EDDT, '%Y%m%d%H%i%S')               END AS AVAIL_EDDT
+		     , CASE WHEN CP.PD_GB = 'D' THEN DATE_FORMAT(NOW(), '%Y.%m.%d %H:%i')
+		            ELSE DATE_FORMAT(CP.AVAIL_STDT, '%Y.%m.%d %H:%i')              END AS AVAIL_STDT_TIME
+		     , CASE WHEN CP.PD_GB = 'D' THEN DATE_FORMAT(CONCAT(CURRENT_DATE + INTERVAL CP.AVAIL_DAYS DAY, ' 23:59:59'), '%Y.%m.%d %H:%i')
+		            ELSE  DATE_FORMAT(CP.AVAIL_EDDT, '%Y.%m.%d %H:%i')             END AS AVAIL_EDDT_TIME
 		     , CP.CPN_NM
+		     , CONCAT(CASE WHEN CP.BUY_LIMIT_AMT = 0 THEN ''
+		                    ELSE CONCAT(FORMAT(CP.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ')
+		              END
+		             ,CASE WHEN CP.MAX_DC_AMT = 0 THEN ''
+		                   ELSE CONCAT('최대 ',FORMAT(CP.MAX_DC_AMT , 0),'원 할인')
+		              END
+		             )                                                                     AS USE_CONDITION
+		     , CASE WHEN CP.CUST_PUB_LIMIT_QTY = 0 THEN ''
+		            ELSE CONCAT('1인당 최대',CP.CUST_PUB_LIMIT_QTY,'매')
+		       END                                                                         AS ISSUE_CONDITION
+		     , CONCAT(CR.REF_VAL, CASE WHEN CR.CPN_TARGET = 'G260_10' AND CR.CNT > 1 THEN ' 외'
+		                               WHEN CR.CPN_TARGET = 'G260_11' AND CR.CNT > 1 THEN ' 외'
+		                               WHEN CR.CPN_TARGET = 'G260_12' AND CR.CNT > 2 THEN ' 외'
+		                               WHEN CR.CPN_TARGET = 'G260_13' AND CR.CNT > 1 THEN ' 외'
+		                               ELSE ''
+		                          END)                                                     AS TGT_CONDITION
 		FROM  TB_CUST_GRADE_POLICY CGP
 		INNER JOIN
 		      TB_COUPON CP
 		ON    CGP.GRADE_CPN_ID1 = CP.CPN_ID
+		INNER JOIN
+		      TAB_COUPON_REFVAL2 CR
+		ON    CP.CPN_ID = CR.CPN_ID
 		WHERE CGP.GRADE_CD = #{custGrade}
 		AND   CP.SITE_CD = #{siteCd}
+		AND   CGP.USE_YN = 'Y'
 	</select>
 	
 	<!--상품 쿠폰 조회-->
@@ -1001,9 +1070,10 @@
 		            GROUP  BY CC.CPN_ID, DATE_FORMAT(CC.AVAIL_STDT,'%Y.%m.%d %H:%i'), DATE_FORMAT(CC.AVAIL_EDDT,'%Y.%m.%d %H:%i')
 		           ) CC
 		         , TB_COUPON C
-		    WHERE  CC.CPN_ID = C.CPN_ID
+		    WHERE  CC.CPN_ID  = C.CPN_ID
 		    AND    C.CPN_STAT = 'G232_11' /*진행중인쿠폰*/
-		    AND    C.SITE_CD = #{siteCd}
+		    AND    C.SITE_CD  = #{siteCd}
+		    AND    C.CPN_ID   = #{cpnId}
 		)
 		, TAB_COUPON_REFVAL1 AS (
 		    SELECT CR.CPN_ID
@@ -1018,10 +1088,10 @@
 		                WHEN CR.CPN_TARGET = 'G260_12' /*브랜드*/ THEN (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = CR.REF_VAL AND USE_YN = 'Y')
 		                WHEN CR.CPN_TARGET = 'G260_13' /*업체*/ THEN (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = CR.REF_VAL AND USE_YN = 'Y' AND SUPPLY_STAT = 'G010_30')
 		           END AS REF_VAL
-		         , RANK() OVER(PARTITION BY CR.CPN_ID, CR.CPN_TARGET ORDER BY REF_VAL) AS RK
-		    FROM   TAB_COUPON C LEFT OUTER JOIN TB_COUPON_REFVAL CR
-		             ON  C.CPN_ID = CR.CPN_ID
+		         , RANK() OVER(PARTITION BY CR.CPN_ID, CR.CPN_TARGET ORDER BY CR.REF_VAL) AS RK
+		    FROM     TB_COUPON_REFVAL CR
 		    WHERE    CR.CPN_TARGET != 'G260_14' /*제외상품아닌넘*/
+		    AND      CR.CPN_ID = #{cpnId}
 		)
 		, TAB_COUPON_REFVAL2 AS (
 		    SELECT CPN_ID

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

@@ -765,7 +765,7 @@
 		INNER JOIN TB_NOTICE_GOODS B ON A.NOTICE_SQ = B.NOTICE_SQ
 		                             AND B.GOODS_CD = #{goodsCd}
 		WHERE  A.NOTICE_TYPE = 'G047_30'
-		AND NOW() BETWEEN A.NOTICE_STDT AND A.NOTICE_EDDT
+		AND CURRENT_DATE() BETWEEN A.NOTICE_STDT AND A.NOTICE_EDDT
 		AND A.USE_YN  = 'Y'
 		ORDER  BY A.NOTICE_SQ DESC
 	</select>
@@ -878,7 +878,7 @@
 		    AND A.TMTB_SQ IN (SELECT TMTB_SQ FROM TB_TMTB_APPLY_GOODS WHERE GOODS_CD = #{goodsCd} AND DEL_YN = 'N' AND GOODS_GB IN ( 'G800_10', 'G800_20')) -- 기본과 적용상품
 		    AND A.TMTB_SQ NOT IN (SELECT TMTB_SQ FROM TB_TMTB_APPLY_GOODS WHERE GOODS_CD = #{goodsCd} AND DEL_YN = 'N' AND GOODS_GB = 'G800_30') -- 제외상품
 		     ]]>
-		    ORDER BY A.TMTB_SQ DESC
+		    -- ORDER BY A.TMTB_SQ DESC
 		    ) Z
 		WHERE RNUM <![CDATA[<= ]]>#{maxRownum}
 		)

+ 11 - 4
src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml

@@ -67,6 +67,7 @@
 		     , Z.ACCOUNT_NO
 		     , Z.ACCOUNT_NM
 		     , Z.DELV_ADDR_SQ
+		     , Z.RECIP_NM
 		     , Z.PAY_STAT
 		  FROM (SELECT O.ORD_NO
 					 , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
@@ -126,6 +127,7 @@
 					 , 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
@@ -221,7 +223,8 @@
 				, 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.PAY_STAT
+				, 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
 	</select>
 
@@ -449,10 +452,14 @@
 		 INNER JOIN TB_ORDER_DETAIL OD
 		    ON OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
 		   AND OD.ORD_NO = #{ordNo}
-		   AND OD.ORD_EXCH_GB = 'O'
-		<if test="ordDtlNo != null and ordDtlNo != ''">
+		<choose>
+			<when test="ordDtlNo != null and ordDtlNo != ''">
 		   AND OD.ORD_DTL_NO = #{ordDtlNo}
-		</if>
+			</when>
+			<otherwise>
+		   AND OD.ORD_EXCH_GB = 'O'
+			</otherwise>
+		</choose>
 		<if test="supplyCompCd != null and supplyCompCd != ''">
 		   AND OD.SUPPLY_COMP_CD = #{supplyCompCd}
 		</if>

+ 23 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -1695,4 +1695,27 @@
 		ORDER BY REG_DT DESC LIMIT 1
 	</select>
 	
+	<select id="getPlanContentInfo" resultType="Plan" parameterType="Plan">
+		/* TsfPlanning.getPlanContentInfo */	
+		SELECT PLAN_SQ 
+		     , PLAN_CONT_SQ 
+		     , TITLE 
+		     , LINK_URL 
+		     , LINK_OPEN_GB 
+		     , CPN_NOTE0 
+		     , CPN_NOTE1 
+		     , CPN_NOTE2 
+		     , CPN_NOTE3 
+		     , CPN_NOTE4 
+		     , CPN_NOTE5 
+		     , CPN_NOTE6 
+		     , CPN_NOTE7 
+		     , CPN_NOTE8 
+		     , CPN_NOTE9 
+		FROM TB_PLAN_CONTENTS
+		WHERE PLAN_SQ = #{planSq}
+		AND TMPL_TYPE = #{tmplType}
+		AND DISP_YN = 'Y'
+	</select>
+	
 </mapper>

+ 3 - 2
src/main/webapp/WEB-INF/views/mob/SigninFormMob.html

@@ -201,13 +201,14 @@
 		}
 		// 비밀번호 틀린 경우
 		if (!gagajf.isNull(result.message)) {
-			grecaptcha.reset(); // 리캡챠 리셋
 			let loginFailCnt = Number(result.loginFailInfo.loginFailCnt);
 			$("#err_msg").html(result.message);
 			$("#login_fail_cnt").html(loginFailCnt);
 			$("#login_remain_cnt").html(10 - loginFailCnt);
 			$(".t_err_login_fail").show();
-
+			if (loginFailCnt >= 5) {
+				grecaptcha.reset();
+			}
 			// 비밀번호 5회 이상 틀린 경우 캡챠 노출
 			if (loginFailCnt >= 5 && loginFailCnt < 10) {
 				$('#recaptcha').show();

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

@@ -321,7 +321,25 @@
 	
 	// 구성 상품 상세 상품평
 	var fnGoodsDetailReview = function(params) {
-		gagajf.ajaxSubmit("/goods/detail/review/frame", "html", "goodsDealReview", params);
+		//gagajf.ajaxSubmit("/goods/detail/review/frame", "html", "goodsDealReview", params);
+		$.ajax( {
+			type		: "POST",
+			url 		: '/goods/detail/review/frame',
+			data		: JSON.stringify(params),
+			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) {
+					$("#goodsDealReview").css("display", "block");
+					$("#goodsDealReview").html(result);
+				}
+			}
+		});
+		
 	}
 	
 	// 상품평 상품선택시

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

@@ -45,7 +45,24 @@
 	
 	// 구성 상품 상세 상품평
 	var fnGoodsDetailReview = function(params) {
-		gagajf.ajaxSubmit("/goods/detail/review/frame", "html", "goodsDealReview", params);
+		// gagajf.ajaxSubmit("/goods/detail/review/frame", "html", "goodsDealReview", params);
+		$.ajax( {
+			type		: "POST",
+			url 		: '/goods/detail/review/frame',
+			data		: JSON.stringify(params),
+			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) {
+					$("#goodsDealReview").css("display", "block");
+					$("#goodsDealReview").html(result);
+				}
+			}
+		});
 	}
 	
 	$(document).ready( function() {

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

@@ -586,15 +586,22 @@ $('#btn_bank_return').click(function() {
 
 //팝업_닫기
 $('.popup_close').on("click",function(){
-	$('.popup_box').hide().removeClass('active');
-	$("body").css({"overflow":"visible"});
+	let id = $(this).parent().parent().attr('id');
+	$(this).parent().parent().hide().removeClass('active');
+	
+	if (id != 'refundBankPop') {
+		$("body").css({"overflow": "visible"});
+	}
 });
 </script>
 
 <script>
 // 버튼 색
 $(document).on('click','.popup_box .button_list button',function(){
-	$('.popup_box .button_list button').removeClass('on');
+	//$('.popup_box .button_list button').removeClass('on');
+	$.each($(this).parent().find('button'), function(idx, item) {
+		$(item).removeClass('on');
+	});
 	$(this).addClass('on');
 });
 
@@ -618,17 +625,6 @@ $(document).on("click","#refundAccountPop .select_bank",function(e){
 	$("body").css({"overflow":"hidden"});
 });
 
-//210408_ 추가 : 환불계좌등록 팝업 스크립트 닫기
-$('.refundAccountPop .popup_close').on("click",function(){
-	$('.refundAccountPop').hide().removeClass('active');
-	$("body").css({"overflow":"visible"});
-});
-
-//210408_ 추가 : 은행선택 팝업 스크립트 닫기
-$('.refundBankPop .popup_close').on("click",function(){
-	$('.refundBankPop').hide().removeClass('active');
-});
-
 //210510_추가 : 토스트 팝업 button 클릭 시 팝업 닫기.
 $(document).on('click','.popup_box.refundBankPop .button_list button',function(){
 	let bankCd = $(this).attr('bankCd');
@@ -640,94 +636,6 @@ $(document).on('click','.popup_box.refundBankPop .button_list button',function()
 	$(this).parents('.popup_box.refundBankPop').hide().removeClass('active');
 	$("body").css({"overflow":"visible"});
 });
-
-
-$(document).ready(function(){
-	/*
-	// 세부 사유 글자 수 제한
-	$('.doc_return').keyup(function(e){
-		var content = $(this).val();
-		$('#return_cnt').html(content.length);
-		if (content.length > 200){
-			mcxDialog.alert("최대 200자까지 입력 가능합니다."); //210420_수정 : 시스템 alert -> dialog 변경.
-			$(this).val(content.substring(0, 200));
-			$('#return_cnt').html("200");
-		}
-	});
-
-	//210408_추가 : 스크립트 추가.
-	//반품회수방법 선택 스크립트 추가
-	$(document).on('change','.my_return .retrieve_method #rdi_retrieve_visit',function(e){
-		$('.my_return .retrieve_box.direct').hide();
-		$('.my_return .retrieve_box.visit').show();
-		return false;
-	}).on('change','.my_return .retrieve_method #rdi_retrieve_direct',function(e){
-		$('.my_return .retrieve_box.visit').hide();
-		$('.my_return .retrieve_box.direct').show();
-		return false;
-	});
-
-	//버튼 색
-	$(document).on('click','.popup_box .button_list button',function(){
-		$('.popup_box .button_list button').removeClass('on');
-		$(this).addClass('on');
-	});
-
-	// 반품 수량 선택 팝업
-	//$(document).on("click",".select_custom.select_count",function(e){
-		//$('#returnCountPop').show().addClass("active");
-		//$("body").css({"overflow":"hidden"});
-	//});
-
-	//반품 사유 선택 팝업
-	$(document).on("click",".select_custom.select_return",function(e){
-		$('#returnReasonPop').show().addClass("active");
-		$("body").css({"overflow":"hidden"});
-	});
-
-	//팝업_닫기
-	$('.popup_close').on("click",function(){
-		$('.popup_box').hide().removeClass('active');
-		$("body").css({"overflow":"visible"});
-	});
-
-	//배송지추가_팝업
-	$(document).on('click','#btn_adrsAdd_pop',function(e){
-		$("#adrsAddPop").modal("show");
-		return false;
-	});      
-	$("#adrsAddPop_close").click(function() {
-		$("#adrsAddPop").modal("hide");
-	});
-
-	//배송지정보_팝업
-	$(document).on('click','#btn_adrsChange_pop',function(e){
-		$("#adrsChangePop").modal("show");
-		return false;
-	});
-	$("#adrsChangePop_close").click(function() {
-		$("#adrsChangePop").modal("hide");
-	});
-
-	//배송지수정_팝업
-	$(document).on('click','#btn_addrModify_pop',function(e){
-		$("#adrsModifyPop").modal("show");
-		return false;
-	});
-	$("#adrsModifyPop_close").click(function() {
-		$("#adrsModifyPop").modal("hide");
-	});
-
-	$(document).on("click", "#btn_order_return", function(){
-		mcxDialog.alert("반품 신청이 접수되었습니다.", {
-				//alert("반품하실 상품의 수량을 선택해주세요.") : 클릭 시 반품 수량을 모두 0개로 선택한 경우
-				//alert("반품 사유를 선택해주세요.") : 반품 사유를 선택하지 않는 경우
-			sureBtnText: "확인",  // Confirmation button text
-		});
-	});
-	*/
-
-});
 </script>
 
 </th:block>

+ 35 - 8
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreExchangeDetailFormMob.html

@@ -126,20 +126,47 @@
 									<span>결제하기</span>
 								</button>
 							</div>
+							<div th:if="${exchangeDtl.chgStat == 'G685_40' and exchangeDtl.chgOrdDtlStat == 'G013_50'}">
+								<button type="button" class="btn btn_default" th:attr="ordNo=${exchangeDtl.ordNo}, ordDtlNo=${exchangeDtl.ordDtlNo}, shipCompCd=${exchangeDtl.exchangeShipCompCd}, invoiceNo=${exchangeDtl.exchangeInvoiceNo}" onclick="fnGoToDelivery(this);">
+									<span>배송조회</span>
+								</button>
+							</div>
 							<div>
 								<button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);">
 									<span>1:1 문의</span>
 								</button>
 							</div>
 						</div>
-						<div class="goods_txt">
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}" th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_20'}">교환 신청이 접수 되었습니다.<br> 신속하게 처리하여 드리겠습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_30'}">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_31' and exchangeDtl.chgGb == 'G680_40'}">고객님이 교환하신 상품을 검수 중에 있습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_40' and (exchangeDtl.chgOrdDtlStat == 'G013_60' or exchangeDtl.chgOrdDtlStat == 'G013_70')}">교환이 완료되었습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_49'}">요청하신 교환을 취소하였습니다.</p>
-						</div>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc" th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_20'}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br> 신속하게 처리하여 드리겠습니다.</p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_30'}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_31' and exchangeDtl.chgGb == 'G680_40'}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">고객님이 교환하신 상품을 검수 중에 있습니다.</p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_40' and (exchangeDtl.chgOrdDtlStat == 'G013_60' or exchangeDtl.chgOrdDtlStat == 'G013_70')}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">교환이 완료되었습니다.</p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_49'}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">요청하신 교환을 취소하였습니다.</p>
+							</div>
+						</th:block>
 					</div>
 				</th:block>
 			</div>

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

@@ -141,11 +141,15 @@
 							<!-- //결제하기 -->
 							<!-- 배송조회 -->
 							<th:block th:if="${cre.chgStat} == 'G685_40'">
-								<div>
-									<button type="button" class="btn btn_default" th:attr="ordNo=${cre.ordNo}, ordDtlNo=${cre.ordDtlNo}, shipCompCd=${cre.exchangeShipCompCd}, invoiceNo=${cre.exchangeInvoiceNo}" onclick="fnGoToDelivery(this);">
-										<span>배송조회</span>
-									</button>
-								</div>
+								<th:block th:each="exchange, index : ${creList.exchangeOptionList}">
+									<th:block th:if="${cre.chgOrdDtlNo} == ${exchange.ordDtlNo} and ${exchange.ordDtlStat} == 'G013_50'">
+										<div>
+											<button type="button" class="btn btn_default" th:attr="ordNo=${cre.ordNo}, ordDtlNo=${cre.ordDtlNo}, shipCompCd=${exchange.shipCompCd}, invoiceNo=${exchange.invoiceNo}" onclick="fnGoToDelivery(this);">
+												<span>배송조회</span>
+											</button>
+										</div>
+									</th:block>
+								</th:block>
 							</th:block>
 							<!-- //배송조회 -->
 							<div><button type="button" class="btn btn_default" onclick="fnGoToOneToOnePage()"><span>1:1 문의</span></button></div>
@@ -182,8 +186,8 @@
 						</th:block>
 						<!-- //결제대기(교환) -->
 						<!-- 교환완료 -->
-						<th:block th:if="${cre.chgStat} == 'G680_40'">
-							<th:block th:each="exchange, index , ${creList.exchangeOptionList}">
+						<th:block th:if="${cre.chgStat} == 'G685_40'">
+							<th:block th:each="exchange, index : ${creList.exchangeOptionList}">
 								<th:block th:if="${cre.chgOrdDtlNo} == ${exchange.ordDtlNo} and (${exchange.ordDtlStat} == 'G013_60' or ${exchange.ordDtlStat} == 'G013_70')">
 									<div class="goods_txt">
 										<p class="cf_txt cf_desc">교환이 완료되었습니다.</p>

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

@@ -111,7 +111,7 @@
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_50'}">반품 신청이 접수 되었습니다.<br> 신속하게 처리하여 드리겠습니다.</p>
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_30'}">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p>
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_31' and returnDtl.chgGb == 'G680_30'}">고객님이 반품하신 상품을 검수 중에 있습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_33'}">환불을 진행하고 있습니다(영업일 최대 3일 내 환불 예정)</p>
+							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_33'}">환불을 진행하고 있습니다.(영업일 최대 3일 내 환불 예정)</p>
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_60'}">반품이 완료되었습니다.</p>
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_69'}">요청하신 반품을 취소하였습니다.</p>
 						</div>

+ 35 - 210
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderDetailFormMob.html

@@ -17,7 +17,7 @@
 
 <th:block layout:fragment="content">
 <main role="" id="mypageOrderDetailForm" class="container my">
-	<section class="content my_order">
+	<section class="content my_order my_gift">
 		<div class="inner wide bg_beige">
 			<div class="order_number">
 				<dl class="clear">
@@ -88,6 +88,7 @@
 												<!-- 세트상품 -->
 												<th:block th:if="${ordDtl.goodsType == 'G056_S'}">
 													<th:block th:each="option, status : ${ordDtl.colorNmArr}">
+														<em th:text="${ordDtl.itemNmArr[status.index]}"></em>
 														<em th:text="${option}"></em>
 														<em th:text="${ordDtl.optCd2Arr[status.index]}"></em>
 													</th:block>
@@ -218,91 +219,6 @@
 										</th:block>
 										<!-- //리뷰사용가능, 리뷰등록전일때 -->
 									</div>
-
-
-
-
-
-
-
-
-
-<!--									&lt;!&ndash; 버튼 4개 &ndash;&gt;-->
-<!--									<th:block th:unless="${ordDtl.changeableYn} == 'N' and ${ordDtl.returnableYn} == 'N'">-->
-<!--										<div class="goods_btn_wrap btn_group_flex type1">-->
-<!--											&lt;!&ndash; 교환불가 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.changeableYn} == 'N'">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_default btn_qna_write" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);">-->
-<!--														<span>1:1 문의</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //교환불가 &ndash;&gt;-->
-<!--											&lt;!&ndash; 교환가능 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.changeableYn} == 'Y'">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_default btn_exch_req" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" th:ordCanChgQty="${ordDtl.ordCanChgQty}" th:delvFeeCd="${ordDtl.delvFeeCd}" onclick="fnCreateChange(this, 'exchange');">-->
-<!--														<span>교환 신청</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //교환가능 &ndash;&gt;-->
-<!--											&lt;!&ndash; 반품가능 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.returnableYn} == 'Y'">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_default btn_rtn_req" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" th:ordCanChgQty="${ordDtl.ordCanChgQty}" th:delvFeeCd="${ordDtl.delvFeeCd}" onclick="fnCreateChange(this, 'return');">-->
-<!--														<span>반품 신청</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; 반품가능 &ndash;&gt;-->
-<!--											&lt;!&ndash; 반품불가 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.returnableYn} == 'N'">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_default btn_qna_write" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);">-->
-<!--														<span>1:1 문의</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //반품불가 &ndash;&gt;-->
-
-<!--											<div><button type="button" class="btn btn_default btn_delv_sch" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, shipCompCd=${ordDtl.shipCompCd}, invoiceNo=${ordDtl.invoiceNo}" onclick="fnGoToDelivery(this);"><span>배송 조회</span></button></div>-->
-
-<!--											&lt;!&ndash; 리뷰사용가능, 리뷰등록전일때 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">-->
-<!--												<div><button type="button" class="btn btn_primary btn_review_write" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, goodsCd=${ordDtl.goodsCd}" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //리뷰사용가능, 리뷰등록전일때 &ndash;&gt;-->
-<!--										</div>-->
-<!--										&lt;!&ndash; //리뷰사용가능, 리뷰등록전일때 &ndash;&gt;-->
-<!--									</th:block>-->
-<!--									&lt;!&ndash; //버튼 4개 &ndash;&gt;-->
-<!--									&lt;!&ndash; 버튼 3개 &ndash;&gt;-->
-<!--									<th:block th:if="${ordDtl.changeableYn} == 'N' and ${ordDtl.returnableYn} == 'N'">-->
-<!--										<div class="goods_btn_wrap btn_group_flex">-->
-<!--											<div>-->
-<!--												<button type="button" class="btn btn_default btn_qna_write" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);">-->
-<!--													<span>1:1 문의</span>-->
-<!--												</button>-->
-<!--											</div>-->
-<!--											<div>-->
-<!--												<button type="button" th:id="btn_purchase_confirm" class="btn btn_primary" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" onclick="fnDecideOrder(this);">-->
-<!--													<span>구매 확정</span>-->
-<!--												</button>-->
-<!--											</div>-->
-<!--											&lt;!&ndash; 리뷰사용가능, 리뷰등록전일때 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_primary btn_review_write" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" th:goodsCd="${ordDtl.goodsCd}" onclick="fnCreateReview(this);">-->
-<!--														<span>리뷰 쓰기</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //리뷰사용가능, 리뷰등록전일때 &ndash;&gt;-->
-<!--										</div>-->
-<!--									</th:block>-->
-<!--									&lt;!&ndash; //버튼 3개 &ndash;&gt;-->
 								</th:block>
 								<!-- //배송중 (교환가능, 반품가능) -->
 
@@ -375,98 +291,6 @@
 										</th:block>
 										<!-- //리뷰사용가능, 리뷰등록전일때 -->
 									</div>
-
-
-
-
-
-
-
-
-
-
-
-									<!-- 버튼4개 -->
-<!--									<th:block th:unless="${ordDtl.changeableYn} == 'N' and ${ordDtl.returnableYn} == 'N'">-->
-<!--										<div class="goods_btn_wrap btn_group_flex type1">-->
-<!--											&lt;!&ndash; 교환불가 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.changeableYn} == 'N'">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_default btn_qna_write" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);">-->
-<!--														<span>1:1 문의</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //교환불가 &ndash;&gt;-->
-<!--											&lt;!&ndash; 교환가능 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.changeableYn} == 'Y'">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_default btn_exch_req" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" th:ordCanChgQty="${ordDtl.ordCanChgQty}" th:delvFeeCd="${ordDtl.delvFeeCd}" onclick="fnCreateChange(this, 'exchange');">-->
-<!--														<span>교환 신청</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //교환가능 &ndash;&gt;-->
-<!--											&lt;!&ndash; 반품가능 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.returnableYn} == 'Y'">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_default btn_rtn_req" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" th:ordCanChgQty="${ordDtl.ordCanChgQty}" th:delvFeeCd="${ordDtl.delvFeeCd}" onclick="fnCreateChange(this, 'return');">-->
-<!--														<span>반품 신청</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //반품가능 &ndash;&gt;-->
-<!--											&lt;!&ndash; 반품불가 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.returnableYn} == 'N'">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_default btn_qna_write" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);">-->
-<!--														<span>1:1 문의</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //반품불가 &ndash;&gt;-->
-<!--											<div>-->
-<!--												<button type="button" th:id="btn_purchase_confirm" class="btn btn_primary" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" onclick="fnDecideOrder(this);">-->
-<!--													<span>구매 확정</span>-->
-<!--												</button>-->
-<!--											</div>-->
-<!--											&lt;!&ndash; 리뷰사용가능, 리뷰등록전일때 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_primary btn_review_write" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" th:goodsCd="${ordDtl.goodsCd}" onclick="fnCreateReview(this);">-->
-<!--														<span>리뷰 쓰기</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //리뷰사용가능, 리뷰등록전일때 &ndash;&gt;-->
-<!--										</div>-->
-<!--									</th:block>-->
-									<!-- //버튼 4개 -->
-									<!-- 버튼 3개 -->
-<!--									<th:block th:if="${ordDtl.changeableYn} == 'N' and ${ordDtl.returnableYn} == 'N'">-->
-<!--										<div class="goods_btn_wrap btn_group_flex">-->
-<!--											<div>-->
-<!--												<button type="button" class="btn btn_default btn_qna_write" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);">-->
-<!--													<span>1:1 문의</span>-->
-<!--												</button>-->
-<!--											</div>-->
-<!--											<div>-->
-<!--												<button type="button" th:id="btn_purchase_confirm" class="btn btn_primary" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" onclick="fnDecideOrder(this);">-->
-<!--													<span>구매 확정</span>-->
-<!--												</button>-->
-<!--											</div>-->
-<!--											&lt;!&ndash; 리뷰사용가능, 리뷰등록전일때 &ndash;&gt;-->
-<!--											<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">-->
-<!--												<div>-->
-<!--													<button type="button" class="btn btn_primary btn_review_write" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" th:goodsCd="${ordDtl.goodsCd}" onclick="fnCreateReview(this);">-->
-<!--														<span>리뷰 쓰기</span>-->
-<!--													</button>-->
-<!--												</div>-->
-<!--											</th:block>-->
-<!--											&lt;!&ndash; //리뷰사용가능, 리뷰등록전일때 &ndash;&gt;-->
-<!--										</div>-->
-<!--									</th:block>-->
-									<!-- //버튼 3개 -->
 								</th:block>
 								<!-- //배송완료 (교환가능, 반품가능) -->
 								
@@ -493,30 +317,32 @@
 							<!-- //일반주문 -->
 							<!-- 선물주문 -->
 							<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
-								<!-- 배송지등록전 -->
-								<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
-									<div><button type="button" class="btn btn_primary btn_sms_send" th:attr="ordNo=${ordDtl.ordNo}" onclick="fnReSendSms(this);"><span>SMS 재발송</span></button></div>
-								</th:block>
-								<!-- //배송지등록전 -->
-								
-								<!-- 배송지등록후 (입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
-								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10' or ${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
-									<div><button type="button" class="btn btn_default btn_cncl_complete" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}, ordCanChgQty=${ordDtl.ordCanChgQty}" onclick="fnCreateChange(this, 'cancel');"><span>주문 취소</span></button></div>
-								</th:block>
-								<!-- //배송지등록후 (입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
-								
-								<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
-									<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
-										<div><button type="button" class="btn btn_default btn_cart_save" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateCart(this);"><span>쇼핑백 담기</span></button></div>
-										<!-- 리뷰사용가능, 리뷰등록전일때 -->
-										<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null and ${ordDtl.ordDtlStat} == 'G013_70'">
-											<div><button type="button" class="btn btn_primary btn_review_write" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, goodsCd=${ordDtl.goodsCd}" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></div>
+								<div class="goods_btn_wrap btn_group_flex">
+									<!-- 배송지등록전 -->
+									<th:block th:if="${ordDtl.giftAddrInpYn == 'N'} and ${ordDtl.giftLimitDay} >= 0">
+										<div><button type="button" class="btn btn_default btn_sms_send" th:attr="ordNo=${ordDtl.ordNo}" onclick="fnReSendSms(this);"><span>SMS 재발송</span></button></div>
+									</th:block>
+									<!-- //배송지등록전 -->
+									
+									<!-- 배송지등록후 (입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
+									<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10' or ${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
+										<div><button type="button" class="btn btn_default btn_cncl_complete" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}, ordCanChgQty=${ordDtl.ordCanChgQty}" onclick="fnCreateChange(this, 'cancel');"><span>주문 취소</span></button></div>
+									</th:block>
+									<!-- //배송지등록후 (입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
+									
+									<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+									<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
+										<th:block th:if="${ordDtl.giftAddrInpYn == 'Y'} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+											<div><button type="button" class="btn btn_default btn_cart_save" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateCart(this);"><span>쇼핑백 담기</span></button></div>
+											<!-- 리뷰사용가능, 리뷰등록전일때 -->
+											<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null and ${ordDtl.ordDtlStat} == 'G013_70'">
+												<div><button type="button" class="btn btn_primary btn_review_write" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, goodsCd=${ordDtl.goodsCd}" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></div>
+											</th:block>
+											<!-- //리뷰사용가능, 리뷰등록전일때 -->
 										</th:block>
-										<!-- //리뷰사용가능, 리뷰등록전일때 -->
 									</th:block>
-								</th:block>
-								<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+									<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+								</div>
 							</th:block>
 							<!-- //선물주문 -->
 							<!-- //주문상태별 버튼기능 정의 -->
@@ -616,16 +442,16 @@
 							<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
 								<div class="goods_txt">
 									<!-- 배송지등록전 -->
-									<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
-										<p class="cf_txt cf_desc"><span th:text="|‘${ordDtl.recipNm}’|"></span>님 주소를 입력하기 전입니다.</p>
+									<th:block th:if="${ordDtl.giftAddrInpYn == 'N'} and ${ordDtl.giftLimitDay} >= 0">
+										<p class="cf_txt cf_desc"><span th:text="|‘${deliveryAddrInfo.recipNm}’|"></span>님 주소를 입력하기 전입니다.</p>
 										<p class="period">입력기한 <span th:text="${ordDtl.giftLimitDt}"></span></p>
 									</th:block>
 									<!-- //배송지등록전 -->
 									
 									<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
 									<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
-										<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
-											<p class="cf_txt cf_desc"><span th:text="|‘${ordDtl.recipNm}’|"></span>님께 선물이 발송되었습니다.</p>
+										<th:block th:if="${ordDtl.giftAddrInpYn == 'Y'} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+											<p class="cf_txt cf_desc"><span th:text="|‘${deliveryAddrInfo.recipNm}’|"></span>님께 선물이 발송되었습니다.</p>
 										</th:block>
 									</th:block>
 									<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
@@ -746,7 +572,7 @@
 			<!-- 폴딩리스트 -->
 		</div>
 		
-		<div class="inner wide">
+		<div class="inner wide" th:if="${oneData.giftPackYn == 'N'}">
 			<!-- 폴딩리스트 -->
 			<div class="ui_row">
 				<div class="foldGroup shipfold">
@@ -805,19 +631,18 @@
 			</div>
 			<!-- 폴딩리스트 -->
 		</div>
-		
-		<th:block th:if="${orderInfo.giftPackYn} == 'Y'">
+		<th:block th:if="${oneData.giftPackYn} == 'Y'">
 			<div class="inner">
 				<div class="gift_wrap">
 					<h3>선물 받으실 분</h3>
 					<div class="gift_con">
 						<div class="gift_info">
-							<span th:text="${orderInfo.recipNm}"></span> / <span th:text="${orderInfo.recipPhnno}"></span>
+							<span th:text="${deliveryAddrInfo.recipNm}"></span> / <span th:text="${deliveryAddrInfo.recipPhnno}"></span>
 						</div>
 						<div class="message">
 							<p class="gift_tit">선물 메세지</p>
 							<div class="content">
-								<p th:text="${orderInfo.giftMsg}" id="giftMsg"></p>
+								<p th:text="${deliveryAddrInfo.giftMsg}" id="giftMsg"></p>
 							</div> 
 						</div>
 					</div>
@@ -938,7 +763,7 @@
 
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
-	let giftMsg				= [[${orderInfo.giftMsg}]];		// 선물메세지
+	let giftMsg				= [[${deliveryAddrInfo.giftMsg}]];		// 선물메세지
 	let ordNo 				= [[${ordNo}]];
 	var isLogin 			= [[${isLogin}]];
 	let orderList 			= [[${orderList}]];

+ 9 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListFormMob.html

@@ -280,6 +280,15 @@ var fnGetInfiniteScrollDataList = function() {
 							$("#listBox").append(result);
 						} else {
 							gagaInfiniteScroll.draw(result);
+							
+							// 2021.06.03 첫페이지 버튼 클래스 처리가 안되어 여기서 처리 진행
+							if (pageNo == 1) {
+								$.each($('.btn_count'), function(idx, item) {
+									if ($(item).children().length > 3 && !$(item).hasClass('col2')) {
+										$(item).addClass('col2');
+									}
+								});
+							}
 						}
 					}
 				}

+ 42 - 40
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListInfoMob.html

@@ -23,27 +23,25 @@
 						<div class="goods_status">
 							<!-- 선물배송일때 -->
 							<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
-								<div class="goods_txt">
-									<!-- 배송지등록전 -->
-									<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
-										<p class="dlvr_staus">주소 입력 대기 중</p>
-									</th:block>
-									<!-- //배송지등록전 -->
-									
-									<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-									<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
-										<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
-											<p class="dlvr_staus">선물 완료</p>
-										</th:block>
-									</th:block>
-									<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-									
-									<!-- 선물 취소 -->
-									<th:block th:if="${ordDtl.ordDtlStat} == 'G013_98' and ${ordDtl.ordDtlStat} == 'G013_99'">
-										<p class="dlvr_staus">선물 취소</p>
+								<!-- 배송지등록전 -->
+								<th:block th:if="${ordDtl.giftAddrInpYn == 'N'} and ${ordDtl.giftLimitDay} >= 0">
+									<p class="dlvr_staus">주소 입력 대기 중</p>
+								</th:block>
+								<!-- //배송지등록전 -->
+								
+								<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
+									<th:block th:if="${ordDtl.giftAddrInpYn == 'Y'} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+										<p class="dlvr_staus">선물 완료</p>
 									</th:block>
-									<!-- //선물 취소 -->
-								</div>
+								</th:block>
+								<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+								
+								<!-- 선물 취소 -->
+								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_98' and ${ordDtl.ordDtlStat} == 'G013_99'">
+									<p class="dlvr_staus">선물 취소</p>
+								</th:block>
+								<!-- //선물 취소 -->
 							</th:block>
 							<!-- //선물배송일때 -->
 							
@@ -339,9 +337,9 @@
 							<!-- 선물배송, 배송미입력 -->
 							<div class="goods_btn_wrap btn_group_flex">
 								<!-- 배송지등록전 -->
-								<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
+								<th:block th:if="${ordDtl.giftAddrInpYn == 'N'} and ${ordDtl.giftLimitDay} >= 0">
 									<div>
-										<button type="button" class="btn btn_primary btn_sms_send">
+										<button type="button" class="btn btn_default btn_sms_send">
 											<span>SMS 재발송</span>
 										</button>
 									</div>
@@ -360,7 +358,7 @@
 								
 								<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
 								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
-									<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+									<th:block th:if="${ordDtl.giftAddrInpYn == 'Y'}">
 										<div><button type="button" class="btn btn_default btn_cart_save"><span>쇼핑백 담기</span></button></div>
 										<!-- 리뷰사용가능, 리뷰등록전일때 -->
 										<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null and ${ordDtl.ordDtlStat} == 'G013_70'">
@@ -467,28 +465,32 @@
 						
 						<!-- 선물배송일때 -->
 						<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
-							<div class="goods_txt">
-								<!-- 배송지등록전 -->
-								<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
+							<!-- 배송지등록전 -->
+							<th:block th:if="${ordDtl.giftAddrInpYn == 'N'} and ${ordDtl.giftLimitDay} >= 0">
+								<div class="goods_txt">
 									<p class="cf_txt cf_desc"><span th:text="|‘${ordDtl.recipNm}’|"></span>님 주소를 입력하기 전입니다.</p>
 									<p class="period">입력기한 <span th:text="${ordDtl.giftLimitDt}"></span></p>
-								</th:block>
-								<!-- //배송지등록전 -->
-								
-								<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
-									<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+								</div>
+							</th:block>
+							<!-- //배송지등록전 -->
+							
+							<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
+								<th:block th:if="${ordDtl.giftAddrInpYn == 'Y'} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+									<div class="goods_txt">
 										<p class="cf_txt cf_desc"><span th:text="|‘${ordDtl.recipNm}’|"></span>님께 선물이 발송되었습니다.</p>
-									</th:block>
+									</div>
 								</th:block>
-								<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-								
-								<!-- 선물 취소 -->
-								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_98' and ${ordDtl.ordDtlStat} == 'G013_99'">
+							</th:block>
+							<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+							
+							<!-- 선물 취소 -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_98' and ${ordDtl.ordDtlStat} == 'G013_99'">
+								<div class="goods_txt">
 									<p class="cf_txt cf_desc">주소 입력 기한이 경과되어 선물이 취소 되었습니다.</p>
-								</th:block>
-								<!-- //선물 취소 -->
-							</div>
+								</div>
+							</th:block>
+							<!-- //선물 취소 -->
 						</th:block>
 						<!-- //선물배송일때 -->
 						<!-- //상태문구정리 -->

+ 28 - 29
src/main/webapp/WEB-INF/views/mob/mypage/MypageReturnFormMob.html

@@ -338,7 +338,7 @@
 
 <!-- 210408_반품 수량 선택 팝업 -->
 <th:block th:if="${returnList.returnList}" th:each="return, status : ${returnList.returnList}">
-	<div class="popup_box returnCountPop">
+	<div id="returnCountPop" class="popup_box returnCountPop">
 		<div class="lap">
 			<div class="popup_close">카테고리닫기</div>
 			<div class="popup_head sr-only">
@@ -600,19 +600,19 @@ var fnReturn = function() {
 
 	let jsonData = JSON.stringify(data);
 
-	gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-		if (addPayCost > 0) {
-			let ordChgSq = result.ordChgSq;
-			let ordNo = result.ordNo;
-
-			$('#addPaymentForm input[name=ordChgSq]').val(ordChgSq);
-			$('#addPaymentForm input[name=ordNo]').val(ordNo);
-
-			document.addPaymentForm.submit();
-		} else {
-			cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);
-		}
-	}, true);
+	//gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+	//	if (addPayCost > 0) {
+	//		let ordChgSq = result.ordChgSq;
+	//		let ordNo = result.ordNo;
+	//
+	//		$('#addPaymentForm input[name=ordChgSq]').val(ordChgSq);
+	//		$('#addPaymentForm input[name=ordNo]').val(ordNo);
+	//
+	//		document.addPaymentForm.submit();
+	//	} else {
+	//		cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);
+	//	}
+	//}, true);
 }
 
 // 반품 수량 변경 이벤트 처리
@@ -718,7 +718,7 @@ var fnChangeReturnQty = function(param) {
 	}
 
 	// 팝업 닫기
-	$(".popup_close").trigger("click");
+	$(".returnCountPop .popup_close").trigger("click");
 }
 
 // 반품 사유 변경 이벤트
@@ -735,6 +735,9 @@ var fnChangeReturnReason = function(param) {
 
 	// 환불금액 계산
 	fnChangeReturnQty();
+	
+	// 팝업 닫기
+	$(".returnReasonPop .popup_close").trigger("click");
 }
 
 // 회수지 정보 설정
@@ -874,13 +877,20 @@ $(document).on("click",".select_custom.select_return",function(e){
 
 // 팝업_닫기
 $('.popup_close').on("click",function(){
-	$('.popup_box').hide().removeClass('active');
-	$("body").css({"overflow":"visible"});
+	let id = $(this).parent().parent().attr('id');
+	$(this).parent().parent().hide().removeClass('active');
+	
+	if (id != 'refundBankPop') {
+		$("body").css({"overflow": "visible"});
+	}
 });
 
 // 버튼 색
 $(document).on('click','.popup_box .button_list button',function(){
-	$('.popup_box .button_list button').removeClass('on');
+	//$('.popup_box .button_list button').removeClass('on');
+	$.each($(this).parent().find('button'), function(idx, item) {
+		$(item).removeClass('on');
+	});
 	$(this).addClass('on');
 });
 
@@ -903,17 +913,6 @@ $(document).on("click","#refundAccountPop .select_bank",function(e){
 	$("body").css({"overflow":"hidden"});
 });
 
-//210408_ 추가 : 환불계좌등록 팝업 스크립트 닫기
-$('.refundAccountPop .popup_close').on("click",function(){
-	$('.refundAccountPop').hide().removeClass('active');
-	$("body").css({"overflow":"visible"});
-});
-
-//210408_ 추가 : 은행선택 팝업 스크립트 닫기
-$('.refundBankPop .popup_close').on("click",function(){
-	$('.refundBankPop').hide().removeClass('active');
-});
-
 //210510_추가 : 토스트 팝업 button 클릭 시 팝업 닫기.
 $(document).on('click','.popup_box.refundBankPop .button_list button',function(){
 	let bankCd = $(this).attr('bankCd');

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

@@ -585,17 +585,24 @@ $('#btn_bank_return').click(function() {
 
 //팝업_닫기
 $('.popup_close').on("click",function(){
-	$('.popup_box').hide().removeClass('active');
-	$("body").css({"overflow":"visible"});
+	let id = $(this).parent().parent().attr('id');
+	$(this).parent().parent().hide().removeClass('active');
+	
+	if (id != 'refundBankPop') {
+		$("body").css({"overflow": "visible"});
+	}
 });
 </script>
 
 <script>
-// 버튼 색
-$(document).on('click','.popup_box .button_list button',function(){
-	$('.popup_box .button_list button').removeClass('on');
-	$(this).addClass('on');
-});
+	// 버튼 색
+	$(document).on('click','.popup_box .button_list button',function(){
+		//$('.popup_box .button_list button').removeClass('on');
+		$.each($(this).parent().find('button'), function(idx, item) {
+			$(item).removeClass('on');
+		});
+		$(this).addClass('on');
+	});
 
 // 210408_송장번호 input 글자 수 제한
 function handleOnInput(el, maxlength) {
@@ -617,17 +624,6 @@ $(document).on("click","#refundAccountPop .select_bank",function(e){
 	$("body").css({"overflow":"hidden"});
 });
 
-//210408_ 추가 : 환불계좌등록 팝업 스크립트 닫기
-$('.refundAccountPop .popup_close').on("click",function(){
-	$('.refundAccountPop').hide().removeClass('active');
-	$("body").css({"overflow":"visible"});
-});
-
-//210408_ 추가 : 은행선택 팝업 스크립트 닫기
-$('.refundBankPop .popup_close').on("click",function(){
-	$('.refundBankPop').hide().removeClass('active');
-});
-
 //210510_추가 : 토스트 팝업 button 클릭 시 팝업 닫기.
 $(document).on('click','.popup_box.refundBankPop .button_list button',function(){
 	let bankCd = $(this).attr('bankCd');

+ 30 - 8
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberCreExchangeDetailFormMob.html

@@ -122,14 +122,36 @@
 								</button>
 							</div>
 						</div>
-						<div class="goods_txt">
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}" th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_20'}">교환 신청이 접수 되었습니다.<br> 신속하게 처리하여 드리겠습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_30'}">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_31' and exchangeDtl.chgGb == 'G680_40'}">고객님이 교환하신 상품을 검수 중에 있습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_40' and (exchangeDtl.chgOrdDtlStat == 'G013_60' or exchangeDtl.chgOrdDtlStat == 'G013_70')}">교환이 완료되었습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_49'}">요청하신 교환을 취소하였습니다.</p>
-						</div>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc" th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_20'}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br> 신속하게 처리하여 드리겠습니다.</p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_30'}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_31' and exchangeDtl.chgGb == 'G680_40'}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">고객님이 교환하신 상품을 검수 중에 있습니다.</p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_40' and (exchangeDtl.chgOrdDtlStat == 'G013_60' or exchangeDtl.chgOrdDtlStat == 'G013_70')}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">교환이 완료되었습니다.</p>
+							</div>
+						</th:block>
+						<th:block th:if="${exchangeDtl.chgStat == 'G685_49'}">
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">요청하신 교환을 취소하였습니다.</p>
+							</div>
+						</th:block>
 					</div>
 				</th:block>
 			</div>

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

@@ -132,7 +132,7 @@
 							<!-- //결제하기 -->
 							<!-- 배송조회 -->
 							<th:block th:if="${cre.chgStat} == 'G685_40'">
-								<th:block th:each="exchange, index , ${creList.exchangeOptionList}">
+								<th:block th:each="exchange, index : ${creList.exchangeOptionList}">
 									<th:block th:if="${cre.chgOrdDtlNo} == ${exchange.ordDtlNo} and ${exchange.ordDtlStat} == 'G013_50'">
 										<div>
 											<button type="button" class="btn btn_default" th:attr="ordNo=${cre.ordNo}, ordDtlNo=${cre.ordDtlNo}, shipCompCd=${exchange.shipCompCd}, invoiceNo=${exchange.invoiceNo}" onclick="fnGoToDelivery(this);">
@@ -176,8 +176,8 @@
 						</th:block>
 						<!-- //결제대기(교환) -->
 						<!-- 교환완료 -->
-						<th:block th:if="${cre.chgStat} == 'G680_40'">
-							<th:block th:each="exchange, index , ${creList.exchangeOptionList}">
+						<th:block th:if="${cre.chgStat} == 'G685_40'">
+							<th:block th:each="exchange, index : ${creList.exchangeOptionList}">
 								<th:block th:if="${cre.chgOrdDtlNo} == ${exchange.ordDtlNo} and (${exchange.ordDtlStat} == 'G013_60' or ${exchange.ordDtlStat} == 'G013_70')">
 									<div class="goods_txt">
 										<p class="cf_txt cf_desc">교환이 완료되었습니다.</p>

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

@@ -101,7 +101,7 @@
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_50'}">반품 신청이 접수 되었습니다.<br> 신속하게 처리하여 드리겠습니다.</p>
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_30'}">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p>
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_31' and returnDtl.chgGb == 'G680_30'}">고객님이 반품하신 상품을 검수 중에 있습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_33'}">환불을 진행하고 있습니다(영업일 최대 3일 내 환불 예정)</p>
+							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_33'}">환불을 진행하고 있습니다다.(영업일 최대 3일 내 환불 예정)</p>
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_60'}">반품이 완료되었습니다.</p>
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_69'}">요청하신 반품을 취소하였습니다.</p>
 						</div>

+ 10 - 14
src/main/webapp/WEB-INF/views/mob/mypage/NoMemberReturnFormMob.html

@@ -879,13 +879,20 @@ $(document).on("click",".select_custom.select_return",function(e){
 
 // 팝업_닫기
 $('.popup_close').on("click",function(){
-	$('.popup_box').hide().removeClass('active');
-	$("body").css({"overflow":"visible"});
+	let id = $(this).parent().parent().attr('id');
+	$(this).parent().parent().hide().removeClass('active');
+	
+	if (id != 'refundBankPop') {
+		$("body").css({"overflow": "visible"});
+	}
 });
 
 // 버튼 색
 $(document).on('click','.popup_box .button_list button',function(){
-	$('.popup_box .button_list button').removeClass('on');
+	//$('.popup_box .button_list button').removeClass('on');
+	$.each($(this).parent().find('button'), function(idx, item) {
+		$(item).removeClass('on');
+	});
 	$(this).addClass('on');
 });
 
@@ -908,17 +915,6 @@ $(document).on("click","#refundAccountPop .select_bank",function(e){
 	$("body").css({"overflow":"hidden"});
 });
 
-//210408_ 추가 : 환불계좌등록 팝업 스크립트 닫기
-$('.refundAccountPop .popup_close').on("click",function(){
-	$('.refundAccountPop').hide().removeClass('active');
-	$("body").css({"overflow":"visible"});
-});
-
-//210408_ 추가 : 은행선택 팝업 스크립트 닫기
-$('.refundBankPop .popup_close').on("click",function(){
-	$('.refundBankPop').hide().removeClass('active');
-});
-
 //210510_추가 : 토스트 팝업 button 클릭 시 팝업 닫기.
 $(document).on('click','.popup_box.refundBankPop .button_list button',function(){
 	let bankCd = $(this).attr('bankCd');

+ 2 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html

@@ -1181,8 +1181,9 @@ function buy_nc_req(cartSqArr) {
 			cateNm += ' > ' + cate4Nm;
 		}
 		if (!gagajf.isNull(cate5Nm)) {
-			cateNm += ' > ' + cate5Nm */;
+			cateNm += ' > ' + cate5Nm ;
 		}
+		*/
 	}
 	// 광고 스크립트용
 	

+ 72 - 4
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -1996,6 +1996,33 @@
 	
 	// 상품평 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
 	var fnReviewLayerCollBack = function(){
+		
+		// 상품평정보 
+		var params = new Object();
+		let goodsCd = [[${goodsInfo.goodsCd}]];
+		params.goodsCd = goodsCd;
+
+		//gagajf.ajaxSubmit("/goods/detail/review/frame", "html", "goodsDealReview", params);
+
+		$.ajax( {
+			type		: "POST",
+			url 		: '/goods/detail/review/frame',
+			data		: JSON.stringify(params),
+			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) {
+					$("#goodsDealReview").css("display", "block");
+					$("#goodsDealReview").html(result);
+					fnGetList();
+				}
+			}
+		});
+		
 		//슬라이드 - 베스트리뷰
 		var bestReviewtSwiper = new Swiper('.area_rv_best .swiper-container', {
 			slidesPerView: 2,
@@ -2012,10 +2039,53 @@
 		
 	}
 	
+	// 상품평 상세 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
+	var fnReviewDetailLayerCollBack = function(){debugger;
+		
+		fnReviewDetail();
+	       
+		 //슬라이드 - 상품 베스트 리뷰 자세히보기 영역 
+	    var photoReviewDetailSwiper = new Swiper('.pd_photoreviewdetail_pop .swiper-container.detail', {
+	        effect :'fade',
+	        slidesPerView: 1,
+	        spaceBetween: 0,
+	        simulateTouch:false,
+	        navigation: {
+	            nextEl: '.pd_photoreviewdetail_pop .swiper-button-next',
+	            prevEl: '.pd_photoreviewdetail_pop .swiper-button-prev',
+	        },
+	    });   
+
+	    $('.pd_photoreviewdetail_pop .swiper-slide').each(function(index, element){
+	        var $this = $(this);
+	        
+	        var thumbCount = $this.find('.thumblist ul li').length;
+	        var thumbUlWidth = $this.find('.thumblist ul li').width() * thumbCount;
+	        var thumbMargin = 8 * thumbCount;
+	        var thumbListWidth = thumbUlWidth + thumbMargin;
+
+	        $this.find('.thumblist ul').attr('style', 'width:' + thumbListWidth + 'px;');
+	        
+	    });
+
+	    $(document).on('click','.pd_photoreviewdetail_pop .thumblist ul li',function(e){
+
+	        $(this).parents(".swiper-slide").find(".review > .pic > .thumb").empty();
+	        $(this).parents(".swiper-slide").find(".thumblist ul li .pic").removeClass('active');
+	        $(this).find(".pic").addClass('active');
+
+	        var thumbIndex = $(this).index();
+	        thumbContentHtml = $(this).find('.pic .thumb').html();
+	        $(this).parents(".swiper-slide").find(".review > .pic > .thumb").append(thumbContentHtml);
+
+	        return false;
+	    });
+	}
+	
 	// 상품문의 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
 	var fnQnaLayerCollBack = function(){
 		
-		// 상품평정보 
+		// 상품문의정보 
 		var params = new Object();
 		let goodsCd = [[${goodsInfo.goodsCd}]];
 		params.goodsCd = goodsCd;
@@ -2039,9 +2109,7 @@
 					fnGoodsQnaList();
 				}
 			}
-		});
-		
-		
+		});		
 	}
 	
 	 $(document).on('click','.option_box [class^="opt_"] .select_custom .select',function(e){

+ 1 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailReviewFormWeb.html

@@ -683,7 +683,7 @@
 				$(this).parents('div dl dd').find('.ratio .progbar').attr('style', 'width:' + reviewRatio);
 			}
 		});
-			fnGetList();	
+			//fnGetList();	
 		
 	});
 	

+ 20 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html

@@ -623,7 +623,26 @@
 	
 	// 구성 상품 상세 상품평
 	var fnGoodsDetailReview = function(params) {
-		gagajf.ajaxSubmit("/goods/detail/review/frame", "html", "goodsDealReview", params);
+		//gagajf.ajaxSubmit("/goods/detail/review/frame", "html", "goodsDealReview", params);
+		$.ajax( {
+			type		: "POST",
+			url 		: '/goods/detail/review/frame',
+			data		: JSON.stringify(params),
+			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) {
+					$("#goodsDealReview").css("display", "block");
+					$("#goodsDealReview").html(result);
+					fnGetList();
+				}
+			}
+		});
+		
 	}
 	
 	// 상품평 상품선택시

+ 2 - 2
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewDetailFormWeb.html

@@ -257,7 +257,7 @@
 		fnReviewDetail();
 	}
 	
-	$(document).ready( function() {
+	//$(document).ready( function() {
 		
 		fnReviewDetail();
        
@@ -297,7 +297,7 @@
 
 	        return false;
 	    });
-	});		
+	//});		
 
 	 
 /*]]>*/

+ 3 - 3
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewFormWeb.html

@@ -43,8 +43,8 @@
 </div>
 <script th:inline="javascript">
 /*<![CDATA[*/
-	
-	// 구성 상품 상세 상품평
+/*	
+ 	// 구성 상품 상세 상품평
 	var fnGoodsDetailReview = function(params) {
 		gagajf.ajaxSubmit("/goods/detail/review/frame", "html", "goodsDealReview", params);
 	}
@@ -57,7 +57,7 @@
 		params.goodsCd = goodsCd;
 		fnGoodsDetailReview(params);  // ajax html
 		
-	});
+	}); */
 	
 /*]]>*/
 </script>	

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

@@ -106,7 +106,7 @@
 									<!-- 반품상품검수중 -->
 									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_31' and returnDtl.chgGb == 'G680_30'}"><p>고객님이 반품하신 상품을 검수 중에 있습니다.</p></div>
 									<!-- 반품진행중 -->
-									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_33'}"><p>환불을 진행하고 있습니다(영업일 최대 3일 내 환불 예정)</p></div>
+									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_33'}"><p>환불을 진행하고 있습니다.(영업일 최대 3일 내 환불 예정)</p></div>
 									<!-- 반품완료 -->
 									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_60'}"><p>반품이 완료되었습니다.</p></div>
 									<!-- 반품철회 -->

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

@@ -194,13 +194,13 @@
 											<!-- 선물 -->
 											<th:block th:if="${order.giftPackYn == 'Y'}">
 												<!-- 주소 입력 대기중 -->
-												<div class="order_text" th:if="${#strings.isEmpty(ordDtl.recipBaseAddr) and ordDtl.giftLimitDay >= 0}">
-													<p th:text="|${ordDtl.recipNm}님이 주소를 입력하기 전입니다. (입력기한 ${ordDtl.giftLimitDt})|"></p>
+												<div class="order_text" th:if="${ordDtl.giftAddrInpYn == 'N' and ordDtl.giftLimitDay >= 0}">
+													<p th:text="|${deliveryAddrInfo.recipNm}님이 주소를 입력하기 전입니다. (입력기한 ${ordDtl.giftLimitDt})|"></p>
 												</div>
 	
 												<!-- 선물 완료 -->
-												<div class="order_text" th:if="${!#strings.isEmpty(ordDtl.recipBaseAddr) and ordDtl.ordDtlStat != 'G013_98' and ordDtl.ordDtlStat != 'G013_99'}">
-													<p th:text="|${ordDtl.recipNm}님께 선물이 발송되었습니다.|"></p>
+												<div class="order_text" th:if="${ordDtl.giftAddrInpYn == 'Y' and ordDtl.ordDtlStat != 'G013_98' and ordDtl.ordDtlStat != 'G013_99'}">
+													<p th:text="|${deliveryAddrInfo.recipNm}님께 선물이 발송되었습니다.|"></p>
 												</div>
 	
 												<!-- 선물 취소 -->

+ 5 - 5
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html

@@ -482,7 +482,7 @@
 					// 버튼 처리
 					if (ordDtl.giftPackYn == 'Y') {
 						// SMS 재발송 버튼
-						if (gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.giftLimitDay >= 0) {
+						if (ordDtl.giftAddrInpYn == 'N' && ordDtl.giftLimitDay >= 0) {
 							tag += '											<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" onclick="fnReSendSms(this);"><span>SMS 재발송</span></button></p>\n';
 						}
 
@@ -492,12 +492,12 @@
 						}
 
 						// 리뷰 쓰기 버튼
-						if (!gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.ordDtlStat != 'G013_98' && ordDtl.ordDtlStat != 'G013_99' && ordDtl.reviewableYn == 'Y' && ordDtl.reviewSq == null) {
+						if (ordDtl.giftAddrInpYn == 'Y' && ordDtl.ordDtlStat != 'G013_98' && ordDtl.ordDtlStat != 'G013_99' && ordDtl.reviewableYn == 'Y' && ordDtl.reviewSq == null) {
 							tag += '											<p><button type="button" class="btn btn_primary_line btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" goodsCd="' + ordDtl.goodsCd + '" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>\n';
 						}
 
 						// 쇼핑백담기 버튼(구매확정)
-						if (!gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.ordDtlStat != 'G013_98' && ordDtl.ordDtlStat != 'G013_99') {
+						if (ordDtl.giftAddrInpYn == 'Y' && ordDtl.ordDtlStat != 'G013_98' && ordDtl.ordDtlStat != 'G013_99') {
 							tag += '											<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" onclick="fnCreateCart(this);"><span>쇼핑백 담기</span></button></p>\n';
 						}
 					} else {
@@ -559,12 +559,12 @@
 					// 하단 상태값 배너 처리
 					if (ordDtl.giftPackYn == 'Y') {
 						// 주소 입력 대기중
-						if (gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.giftLimitDay >= 0) {
+						if (ordDtl.giftAddrInpYn == 'N' && ordDtl.giftLimitDay >= 0) {
 							tag += '									<div class="order_text"><p>' + ordDtl.recipNm + '님이 주소를 입력하기 전입니다. (입력기한 ' + ordDtl.giftLimitDt + ')</p></div>\n';
 						}
 						
 						// 선물 완료
-						if (!gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.ordDtlStat != 'G013_98' && ordDtl.ordDtlStat != 'G013_99') {
+						if (ordDtl.giftAddrInpYn == 'Y' && ordDtl.ordDtlStat != 'G013_98' && ordDtl.ordDtlStat != 'G013_99') {
 							tag += '									<div class="order_text"><p>' + ordDtl.recipNm + '님께 선물이 발송되었습니다.</p></div>\n';
 						}
 						

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

@@ -104,7 +104,7 @@
 									<!-- 반품상품검수중 -->
 									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_31' and returnDtl.chgGb == 'G680_30'}"><p>고객님이 반품하신 상품을 검수 중에 있습니다.</p></div>
 									<!-- 반품진행중 -->
-									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_33'}"><p>환불을 진행하고 있습니다(영업일 최대 3일 내 환불 예정)</p></div>
+									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_33'}"><p>환불을 진행하고 있습니다.(영업일 최대 3일 내 환불 예정)</p></div>
 									<!-- 반품완료 -->
 									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_60'}"><p>반품이 완료되었습니다.</p></div>
 									<!-- 반품철회 -->

+ 96 - 62
src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html

@@ -90,25 +90,25 @@
             
             <th:block th:each="a, template : ${templateOrd}">
 				<th:block th:if="${a.tmplType == 'G082_10'}">
-						<div class="content wide dp_review" th:id="${a.tmplType}"></div> <!-- //리뷰 -->
+						<div class="content wide dp_review" th:id="${a.tmplType}" style="display: none"></div> <!-- //리뷰 -->
 					</th:block>
 				<th:block th:if="${a.tmplType == 'G082_20'}">
-						 <div class="content wide dp_coupon" th:id="${a.tmplType}"></div>  <!-- //할인쿠폰 -->
+						 <div class="content wide dp_coupon" th:id="${a.tmplType}" style="display: none"></div>  <!-- //할인쿠폰 -->
 					</th:block>
 				<th:block th:if="${a.tmplType == 'G082_30'}">
-						<div class="content dp_mid_banner" th:id="${a.tmplType}"></div> <!-- //이미지-->
+						<div class="content dp_mid_banner" th:id="${a.tmplType}" style="display: none"></div> <!-- //이미지-->
 					</th:block>
 				<th:block th:if="${a.tmplType == 'G082_50'}">
-						<div class="content dp_special" th:id="${a.tmplType + a.planContSq}"></div>
+						<div class="content dp_special" th:id="${a.tmplType + a.planContSq}" style="display: none"></div>
 				</th:block>
 				<th:block th:if="${a.tmplType == 'G082_51'}">
-						<div class="content dp_special" th:id="${a.tmplType + a.planContSq}"></div>
+						<div class="content dp_special" th:id="${a.tmplType + a.planContSq}" style="display: none"></div>
 				</th:block>
 				<th:block th:if="${a.tmplType == 'G082_52'}">
-						<div class="content dp_special" th:id="${a.tmplType + a.planContSq}"></div>
+						<div class="content dp_special" th:id="${a.tmplType + a.planContSq}" style="display: none"></div>
 				</th:block>
 				<th:block th:if="${a.tmplType == 'G082_60'}">
-						<div class="content dp_announce" th:id="${a.tmplType}"></div>
+						<div class="content dp_announce" th:id="${a.tmplType}" style="display: none"></div>
 				</th:block>
 			</th:block>
 			
@@ -245,13 +245,18 @@
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 let review = [[${reviewInfo}]];
+let reviewContent = [[${reviewContent}]];
 let coupon = [[${couponInfo}]];
+let couponContent = [[${couponContent}]];
 let plan = [[${planInfo}]];
 let image = [[${imageInfo}]];
 let notice = [[${noticeInfo}]];
 let goods1 = [[${goods1Info}]];
+let goods1Content = [[${goods1Content}]];
 let goods2 = [[${goods2Info}]];
+let goods2Content = [[${goods2Content}]];
 let goods4 = [[${goods4Info}]];
+let goods4Content = [[${goods4Content}]];
 let template =[[${templateOrd}]];
 let replyList = [[${replyList}]];
 let replyCount = [[${replyCount}]];
@@ -260,6 +265,8 @@ let planCornerGoodsList = [[${planCornerGoodsList}]];
 let planCornerList = [[${planCornerList}]];
 
 if(notice.length>0){
+	$("#G082_60").show();
+	
 	var html = '';
 	
 	html += '    <div class="cont_head">\n';
@@ -284,6 +291,7 @@ if(notice.length>0){
 	html += '    </div>\n';
 
 	$("#G082_60").append(html);
+	
 }
 
 
@@ -308,12 +316,8 @@ if(planCornerList.length>0){
 		html += '                 <h4>'+item.cornerNm+'</h4>\n';
 		html += '             </div>\n';
 		html += '             <div class="itemsGrp';
-		if (item.cornerDispType == 'G045_1') {
-			html += ' cut1';
-		}else if(item.cornerDispType == 'G045_2'){
+		if(item.cornerDispType == 'G045_2'){
 			html += ' cut2';
-		}else if(item.cornerDispType == 'G045_3'){
-			html += ' cut3';
 		}else if(item.cornerDispType == 'G045_4'){
 			html += ' cut4';
 		}else if(item.cornerDispType == 'G045_5'){
@@ -396,13 +400,13 @@ if(planCornerList.length>0){
 	
 }
 
-if(review.length>0){
-	
+if(review.length>0 || reviewContent[0].title != ''){
+	$("#G082_10").show();
 	var html = '';
 	
 	html += ' <div class="cont_head">\n';
 	html += ' 	<div>\n';
-	html += '		<h4>'+review[0].title+'</h4>\n';
+	html += '		<h4>'+reviewContent[0].title+'</h4>\n';
 	html += ' 	</div>\n';
 	html += '	<div class="cont_body">\n';
 	html += ' 		<div class="review_list">\n';
@@ -410,9 +414,19 @@ if(review.length>0){
 		html += '		<div class="reviw_box">\n'
 		html += '			<div class="best_review">\n';
 		if(item.reviewSysImg!= null){
-			html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'Y\', \'Y\',\''+item.reviewSq+'\');">\n';
+			if (item.bestYn == 'Y') {
+				html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'Y\', \'Y\',\''+item.reviewSq+'\');">\n';
+			}else{
+				html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'N\', \'Y\',\''+item.reviewSq+'\');">\n';
+			}
+			
 		}else{
-			html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'Y\', \'N\',\''+item.reviewSq+'\');">\n';
+			if (item.bestYn == 'Y') {
+				html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'Y\', \'N\',\''+item.reviewSq+'\');">\n';
+			}else{
+				html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'N\', \'N\',\''+item.reviewSq+'\');">\n';
+			}
+			
 		}
 		
 		html += '					<div class="pic">\n';
@@ -464,35 +478,40 @@ if(review.length>0){
 	html += '</div>\n';
 
 	$("#G082_10").append(html);
+
+	
 }
 
 if(image.length>0){
-	var html = '';
 	
-	html += '<div class="cont_body">\n     ';
-	html += '    <div class="mid_banner">\n';
-	html += '        <div class="swiper-container">\n';
-	html += '            <div class="swiper-wrapper">\n';
-	for (var i = 0; i < image.length; i++) {
-		html += '                	<div class="swiper-slide">\n';
-		if (image[i].linkOpenGb == 'M') {
-			html += '                    	<a href="'+image[i].linkUrl+'" target="_self"><img alt="" src="'+ _uploadImageUrl + image[i].itemVal +'"></a>\n';
-		}else{
-			html += '                    	<a href="'+image[i].linkUrl+'" target="_blank"><img alt="" src="'+ _uploadImageUrl + image[i].itemVal +'"></a>\n';
+	if (image[0].itemVal != null && image[0].itemVal != '') {
+		$("#G082_30").show();
+		var html = '';
+		
+		html += '<div class="cont_body">\n     ';
+		html += '    <div class="mid_banner">\n';
+		html += '        <div class="swiper-container">\n';
+		html += '            <div class="swiper-wrapper">\n';
+		for (var i = 0; i < image.length; i++) {
+			html += '                	<div class="swiper-slide">\n';
+			if (image[i].linkOpenGb == 'M') {
+				html += '                    	<a href="'+image[i].linkUrl+'" target="_self"><img alt="" src="'+ _uploadImageUrl + image[i].itemVal +'"></a>\n';
+			}else{
+				html += '                    	<a href="'+image[i].linkUrl+'" target="_blank"><img alt="" src="'+ _uploadImageUrl + image[i].itemVal +'"></a>\n';
+			}
+			
+			html += '                	</div>\n';
 		}
+		html += '            </div>\n';
+		html += '        </div>\n';
+		html += '        <div class="swiper-button-prev"></div>\n';
+		html += '        <div class="swiper-button-next"></div>\n';
+		html += '        <div class="swiper-pagination"></div>\n';
+		html += '    </div>\n';
+		html += '</div>\n';
 		
-		html += '                	</div>\n';
+		$("#G082_30").append(html);
 	}
-	html += '            </div>\n';
-	html += '        </div>\n';
-	html += '        <div class="swiper-button-prev"></div>\n';
-	html += '        <div class="swiper-button-next"></div>\n';
-	html += '        <div class="swiper-pagination"></div>\n';
-	html += '    </div>\n';
-	html += '</div>\n';
-	
-	
-	$("#G082_30").append(html);
 }
 
 if(goods1.length>0){
@@ -502,7 +521,6 @@ if(goods1.length>0){
 		if(template[j].tmplType == 'G082_50'){
 			array.push(template[j].planContSq);
 		}
-		
 	}	
 	
 	for (var i = 0; i < template.length; i++) {
@@ -529,6 +547,11 @@ if(goods1.length>0){
 			html += '        <ul>\n';
 		$.each(goods1, function(idx, item)  {
 			if (item.planContSq == template[i].planContSq) {
+				if (item.goodsCd == null && item.goodsCd == '') {
+					$("#G082_50" +array[0]).hide();
+				}else{
+					$("#G082_50" +array[0]).show();
+				}
 				html += '            <li>\n';
 				html += '                <div class="dp_listItems">\n';
 				html += '                    <div class="dp_listItems_img">\n';
@@ -599,6 +622,11 @@ if(goods2.length>0){
 			html += '            <div class="swiper-wrapper">\n';
 			$.each(goods2, function(idx, item) {
 				if (item.planContSq == template[i].planContSq) {
+					if (item.goodsCd == null && item.goodsCd == '') {
+						$("#G082_51" +array[0]).hide();
+					}else{
+						$("#G082_51" +array[0]).show();
+					}
 					html += '                <div class="swiper-slide">\n';
 					html += '                    <div class="item_prod">\n';
 					html += '                        <div class="item_state">\n';
@@ -671,6 +699,11 @@ if(goods4.length>0){
 			html += '            <div class="swiper-wrapper">\n';
 			$.each(goods4, function(idx, item) {
 				if (item.planContSq == template[i].planContSq) {
+					if (item.goodsCd == null && item.goodsCd == '') {
+						$("#G082_52" +array[0]).hide();
+					}else{
+						$("#G082_52" +array[0]).show();
+					}
 					html += '                <div class="swiper-slide">\n';
 					html += '                    <div class="item_prod">\n';
 					html += '                        <div class="item_state">\n';
@@ -711,12 +744,13 @@ if(goods4.length>0){
 	}
 }
 
-if(coupon.length>0){
+if(coupon.length>0 || (couponContent[0].title != '' && couponContent[0].title != null) || (couponContent[0].cpnNote0 != '' && couponContent[0].cpnNote0 != null)){
+	$("#G082_20").show();
 	var html = '';
 	 
 	html += '<div class="cont_head">\n';
 	html += '	<div>\n';
-	html += '		<h4>'+coupon[0].title+'</h4>\n';
+	html += '		<h4>'+couponContent[0].title+'</h4>\n';
 	html += '	</div>\n';
 	html += '</div>\n';
 	html += '<div class="cont_body">\n';
@@ -753,7 +787,7 @@ if(coupon.length>0){
 	html += '		</ul>\n';
 	html += '	</div>\n';
 	html += '</div>\n';
-	if(coupon[0].cpnNote0 != null && coupon[0].cpnNote0 != ''){
+	if(couponContent[0].cpnNote0 != null && couponContent[0].cpnNote0 != ''){
 		html += '<div class="content dp_announce line">\n                                                 ';
 		html += '    <div class="cont_head">\n                                                       ';
 		html += '        <div>\n                                                                     ';
@@ -768,25 +802,25 @@ if(coupon.length>0){
 		html += '            </div>\n                                                                ';
 		html += '            <div class="announce_list">\n                                           ';
 		html += '               <ul>\n';
-		html += '                  <li>' + coupon[0].cpnNote0 +'</li>\n';
-		if(coupon[0].cpnNote1 != null && coupon[0].cpnNote1 != '')
-			html += '                  <li>' + coupon[0].cpnNote1 +'</li>\n';
-		if(coupon[0].cpnNote2 != null && coupon[0].cpnNote2 != '')
-			html += '                  <li>' + coupon[0].cpnNote2 +'</li>\n';
-		if(coupon[0].cpnNote3 != null && coupon[0].cpnNote3 != '')
-			html += '                  <li>' + coupon[0].cpnNote3 +'</li>\n';	
-		if(coupon[0].cpnNote4 != null && coupon[0].cpnNote4 != '')
-			html += '                  <li>' + coupon[0].cpnNote4 +'</li>\n';
-		if(coupon[0].cpnNote5 != null && coupon[0].cpnNote5 != '')
-			html += '                  <li>' + coupon[0].cpnNote5 +'</li>\n';
-		if(coupon[0].cpnNote6 != null && coupon[0].cpnNote6 != '')
-			html += '                  <li>' + coupon[0].cpnNote6 +'</li>\n';
-		if(coupon[0].cpnNote7 != null && coupon[0].cpnNote7 != '')
-			html += '                  <li>' + coupon[0].cpnNote7 +'</li>\n';
-		if(coupon[0].cpnNote8 != null && coupon[0].cpnNote8 != '')
-			html += '                  <li>' + coupon[0].cpnNote8 +'</li>\n';
-		if(coupon[0].cpnNote9 != null && coupon[0].cpnNote9 != '')
-			html += '                  <li>' + coupon[0].cpnNote9 +'</li>\n';
+		html += '                  <li>' + couponContent[0].cpnNote0 +'</li>\n';
+		if(couponContent[0].cpnNote1 != null && couponContent[0].cpnNote1 != '')
+			html += '                  <li>' + couponContent[0].cpnNote1 +'</li>\n';
+		if(couponContent[0].cpnNote2 != null && couponContent[0].cpnNote2 != '')
+			html += '                  <li>' + couponContent[0].cpnNote2 +'</li>\n';
+		if(couponContent[0].cpnNote3 != null && couponContent[0].cpnNote3 != '')
+			html += '                  <li>' + couponContent[0].cpnNote3 +'</li>\n';	
+		if(couponContent[0].cpnNote4 != null && couponContent[0].cpnNote4 != '')
+			html += '                  <li>' + couponContent[0].cpnNote4 +'</li>\n';
+		if(couponContent[0].cpnNote5 != null && couponContent[0].cpnNote5 != '')
+			html += '                  <li>' + couponContent[0].cpnNote5 +'</li>\n';
+		if(couponContent[0].cpnNote6 != null && couponContent[0].cpnNote6 != '')
+			html += '                  <li>' + couponContent[0].cpnNote6 +'</li>\n';
+		if(couponContent[0].cpnNote7 != null && couponContent[0].cpnNote7 != '')
+			html += '                  <li>' + couponContent[0].cpnNote7 +'</li>\n';
+		if(couponContent[0].cpnNote8 != null && couponContent[0].cpnNote8 != '')
+			html += '                  <li>' + couponContent[0].cpnNote8 +'</li>\n';
+		if(couponContent[0].cpnNote9 != null && couponContent[0].cpnNote9 != '')
+			html += '                  <li>' + couponContent[0].cpnNote9 +'</li>\n';
 		html += '               </ul>\n';
 		html += '            </div>                                                                '; 
 		html += '        </div>                                                                    '; 

+ 2 - 2
src/main/webapp/ux/style24_link.js

@@ -891,8 +891,8 @@ function cfGoodsReviewDetail(goodsCd, bestYn, photoYn, reviewSq, attachSq) {
 	params += '&bestYn=' + bestYn;
 	params += '&photoYn=' + photoYn;
 	if (typeof (attachSq) != 'undefined') params += "&attachSq=" + attachSq;
-	
-	cfnOpenLayer(_PAGE_GOODS_REVIEW_DETAIL_LAYER+params, 'layer_review_best');
+
+	cfnOpenLayer(_PAGE_GOODS_REVIEW_DETAIL_LAYER+params, 'layer_review_best',  null, fnReviewDetailLayerCollBack);
 }
 
 /**