소스 검색

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

card007 5 년 전
부모
커밋
cdb64dc03e
24개의 변경된 파일510개의 추가작업 그리고 243개의 파일을 삭제
  1. 9 0
      src/main/java/com/style24/front/biz/dao/TsfOrderDao.java
  2. 58 12
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  3. 19 6
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  4. 6 1
      src/main/java/com/style24/front/biz/web/TsfCartController.java
  5. 4 4
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  6. 15 10
      src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  7. 5 7
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  8. 42 0
      src/main/java/com/style24/persistence/domain/MeasurementStyle.java
  9. 52 40
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  10. 14 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml
  11. 1 1
      src/main/resources/config/application-locd.yml
  12. 1 1
      src/main/resources/config/application-style.yml
  13. 1 1
      src/main/resources/config/application-tsit.yml
  14. 2 0
      src/main/webapp/WEB-INF/views/mob/common/fragments/HeadMob.html
  15. 2 2
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDescFormMob.html
  16. 16 16
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html
  17. 10 10
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  18. 94 38
      src/main/webapp/WEB-INF/views/mob/goods/GoodsSizeInfoFormMob.html
  19. 40 35
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewFormMob.html
  20. 2 0
      src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html
  21. 8 8
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html
  22. 9 8
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  23. 99 41
      src/main/webapp/WEB-INF/views/web/goods/GoodsSizeInfoFormWeb.html
  24. 1 1
      src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html

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

@@ -156,4 +156,13 @@ public interface TsfOrderDao {
 	 * @since 2021. 05. 26
 	 */
 	int getNoMemberOrderInfo(Order order);
+
+	/**
+	 * 주문 실결제 금액 조회
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @since 2021. 06. 02
+	 */
+	int getRealPaymentAmt(Order param);
 }

+ 58 - 12
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.style24.core.support.env.TscConstants;
 import com.style24.front.biz.dao.TsfDisplayDao;
 import com.style24.front.biz.dao.TsfGoodsDao;
@@ -27,6 +28,7 @@ import com.style24.persistence.domain.GoodsStock;
 import com.style24.persistence.domain.GoodsVideo;
 import com.style24.persistence.domain.GoodsViewHst;
 import com.style24.persistence.domain.Measurement;
+import com.style24.persistence.domain.MeasurementStyle;
 import com.style24.persistence.domain.Notice;
 import com.style24.persistence.domain.ReinboundInform;
 import com.style24.persistence.domain.SizeInfo;
@@ -56,6 +58,10 @@ public class TsfGoodsService {
 	@Autowired
 	private TsfDisplayDao displayDao;
 
+	@Autowired
+	private ObjectMapper mapper;
+
+	
 	/**
 	 * 상품뷰이력 생성
 	 *
@@ -667,25 +673,24 @@ public class TsfGoodsService {
 	 * @author eskim
 	 * @date 2021. 3. 10
 	 */
-	public GagaMap getMeasurementListNew(Goods goods) {
+	public Collection<MeasurementStyle> getMeasurementListNew(Goods goods) {
 		GagaMap result = new GagaMap();
 		// 행, 열 변환
-		Collection<Measurement> getMeasurementList = goodsDao.getMeasurementList(goods);
+		Collection<Measurement> measurementList = goodsDao.getMeasurementList(goods);
+		Collection<MeasurementStyle> measurementStyleList = new ArrayList<MeasurementStyle>();
 		
-		if (getMeasurementList == null || getMeasurementList.size() <=0) {
-			result.set("flag", "NOT");
-			return result;
+		if (measurementList == null || measurementList.isEmpty()) {
+			return measurementStyleList;
 		}
 		
-		int colSize = getMeasurementList.size(); 	// 열 column
+		int colSize = measurementList.size(); 	// 열 column
 		int rowSize = 5; // 상의하위포함 최대사이즈
-
 		
 		String[][] arrMeasurementList = new String[rowSize + 1][colSize + 1];
 
 		// 사이즈 설정
 		int yIndex = 0;
-		for (Measurement measurement : getMeasurementList) {
+		for (Measurement measurement : measurementList) {
 			arrMeasurementList[0][0] = measurement.getTypecd();
 			yIndex++;
 			arrMeasurementList[0][yIndex] = measurement.getOptCd2();
@@ -701,12 +706,53 @@ public class TsfGoodsService {
 			arrMeasurementList[3][yIndex] = String.valueOf(measurement.getValue3());
 			arrMeasurementList[4][yIndex] = String.valueOf(measurement.getValue4());
 			arrMeasurementList[5][yIndex] = String.valueOf(measurement.getValue5());
+		
+//			 arrMeasurementList = [[하의, 100, 110, 120, 130, 140, 150],
+//			                       [하의, 42.0, 44.0, 46.0, 48.0, 52.0, 54.0],
+//			                       [하의, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
+//			                       [하의, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
+//			                       [하의, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
+//			                       [하의, 51.0, 60.0, 65.0, 75.0, 79.0, 87.0]]
+//			                    	   
 		}
-		log.info("arrMeasurementList = {}", arrMeasurementList);
 		
-		result.set("flag", "OK");
-		result.set("dataList", arrMeasurementList);
-		return result;
+		for(int i=0; i< 6; i++) {
+			MeasurementStyle measurementStyle = new MeasurementStyle();
+			measurementStyle.setGoodsCd(goods.getGoodsCd());
+			measurementStyle.setSizeCount(colSize);
+			
+			log.info("arrMeasurementList[0].length = {}", arrMeasurementList[0].length);
+			for(int j=0; j<arrMeasurementList[0].length; j++) {
+				switch(j) {
+					case 0: measurementStyle.setTypecd(arrMeasurementList[i][j]); break;
+					case 1: measurementStyle.setSize1(arrMeasurementList[i][j]); break;
+					case 2: measurementStyle.setSize2(arrMeasurementList[i][j]); break;
+					case 3: measurementStyle.setSize3(arrMeasurementList[i][j]); break;
+					case 4: measurementStyle.setSize4(arrMeasurementList[i][j]); break;
+					case 5: measurementStyle.setSize5(arrMeasurementList[i][j]); break;
+					case 6: measurementStyle.setSize6(arrMeasurementList[i][j]); break;
+					case 7: measurementStyle.setSize7(arrMeasurementList[i][j]); break;
+					case 8: measurementStyle.setSize8(arrMeasurementList[i][j]); break;
+					case 9: measurementStyle.setSize9(arrMeasurementList[i][j]); break;
+					case 10: measurementStyle.setSize10(arrMeasurementList[i][j]); break;
+					case 11: measurementStyle.setSize11(arrMeasurementList[i][j]); break;
+					case 12: measurementStyle.setSize12(arrMeasurementList[i][j]); break;
+					case 13: measurementStyle.setSize13(arrMeasurementList[i][j]); break;
+					case 14: measurementStyle.setSize14(arrMeasurementList[i][j]); break;
+					case 15: measurementStyle.setSize15(arrMeasurementList[i][j]); break;
+					case 16: measurementStyle.setSize16(arrMeasurementList[i][j]); break;
+					case 17: measurementStyle.setSize17(arrMeasurementList[i][j]); break;
+					case 18: measurementStyle.setSize18(arrMeasurementList[i][j]); break;
+					case 19: measurementStyle.setSize19(arrMeasurementList[i][j]); break;
+					case 20: measurementStyle.setSize20(arrMeasurementList[i][j]); break;
+				}
+			}
+			measurementStyleList.add(measurementStyle);
+		}
+
+		log.info("measurementStyleList = {}", measurementStyleList);
+	
+		return measurementStyleList;
 	}
 
 	/**

+ 19 - 6
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -1302,13 +1302,26 @@ public class TsfOrderService {
 
 			result = sendOrderInfoToNC(sb);
 
-			// 네이버 페이 주문번호 저장
-			param.setNpayOrdNo(Integer.parseInt(result.get("resultNo").toString()));
+			// 최종 결제 금액 계산
+			Order realAmtOrdNo = new Order();
+			realAmtOrdNo.setOrdNo(ordNo);
+
+			// 4. 결제 예정 정보 저장
+			Payment payment = new Payment();
+			payment.setOrdNo(param.getOrdNo());
+			payment.setPayMeans(TscConstants.PayMeans.CREDIT_CARD.value());
+			payment.setPayAmt(orderDao.getRealPaymentAmt(realAmtOrdNo));
+			payment.setPgCpnAmt(0);
+			payment.setNpayPntAmt(0);
+			payment.setPayGb("O");
+			payment.setPayStat(TscConstants.PaymentStat.PAYMENT_WAIT.value());
+			payment.setPgGb(TscConstants.PgGb.NAVER_ORDER.value());
+			payment.setPgShopId(env.getProperty("naverPay.shop.id"));
+			payment.setEscrowYn("N");
+			payment.setRegNo(custNo);
+			payment.setUpdNo(custNo);
+			coreOrderDao.insertPayment(payment);
 
-			// 3.주문정보 저장
-			param.setOrdNo(ordNo);
-			param.setUpdNo(custNo);
-			coreOrderDao.updateNaverPayOrderNo(param);
 			if(TscConstants.FrontGb.PC.value().equals(TsfSession.getFrontGb())) {
 				result.put("npayOrderUrl", env.getProperty("naverPay.order.pc.url"));
 			} else {

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

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

+ 4 - 4
src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -954,12 +954,12 @@ public class TsfDisplayController extends TsfBaseController {
 //		mav.addObject("cateInfo", params);
 
 		// 상품검색키워드 카테고리 목록
-//		mav.addObject("cateList", diquest.getCategoryList(params));
-		mav.addObject("cateList", displayService.getKeywordCategoryList(params.getKeyword()));
+		mav.addObject("cateList", diquest.getCategoryList(params));
+//		mav.addObject("cateList", displayService.getKeywordCategoryList(params.getKeyword()));
 
 		// 상품리스트 카테고리별 필터 목록
-//		Collection<Filter> filterList = diquest.getFilterList(params);
-		Collection<Filter> filterList = displayService.getSearchGoodsListCategoryFilterList(params);
+		Collection<Filter> filterList = diquest.getFilterList(params);
+//		Collection<Filter> filterList = displayService.getSearchGoodsListCategoryFilterList(params);
 
 		// 필터 설정
 		mav.addObject("filterBrandList", displayService.getCategoryFilterList(filterList, "BRAND"));

+ 15 - 10
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -45,6 +45,7 @@ import com.style24.persistence.domain.GoodsStock;
 import com.style24.persistence.domain.GoodsVideo;
 import com.style24.persistence.domain.Lookbook;
 import com.style24.persistence.domain.Measurement;
+import com.style24.persistence.domain.MeasurementStyle;
 import com.style24.persistence.domain.RecentlyGoods;
 import com.style24.persistence.domain.ReinboundInform;
 import com.style24.persistence.domain.Review;
@@ -664,20 +665,24 @@ public class TsfGoodsController extends TsfBaseController {
 		// 실측 사이즈 정보 - 자사상품만
 		String typeCd = "";
 		String typeWith = "";
+		int sizeCount = 0;
 		Collection<Measurement> measurementList = new ArrayList<Measurement>();
+		Collection<MeasurementStyle> measurementStyleList = new ArrayList<MeasurementStyle>();
 		if ("Y".equals(goods.getSelfGoodsYn())) {
 			paramsGoods.setOptCd1(colorCd);
 			
-			measurementList = goodsService.getMeasurementList(paramsGoods);
+//			measurementList = goodsService.getMeasurementList(paramsGoods);
+//			if (measurementList != null && !measurementList.isEmpty()) {
+//				typeCd = measurementList.iterator().next().getTypecd();
+//				if ("하의".equals(typeCd)) {
+//					typeWith = Integer.toString(((int)Math.floor(100 / 6)));
+//				}
+//			}
 
-			// 개발중 eskim
-			//GagaMap result = goodsService.getMeasurementList(paramsGoods);
-			
-			if (measurementList != null && !measurementList.isEmpty()) {
-				typeCd = measurementList.iterator().next().getTypecd();
-				if ("하의".equals(typeCd)) {
-					typeWith = Integer.toString(((int)Math.floor(100 / 6)));
-				}
+			measurementStyleList = goodsService.getMeasurementListNew(paramsGoods);
+			if (measurementStyleList != null && !measurementStyleList.isEmpty()) {
+				sizeCount = measurementStyleList.iterator().next().getSizeCount();
+				typeWith = Integer.toString(((int)Math.floor(100 / sizeCount)));
 			}
 		}
 
@@ -699,7 +704,7 @@ public class TsfGoodsController extends TsfBaseController {
 		sizeInfo.setSizeCate1Cd("");
 		Collection<SizeInfo> measurementSizeInfoList = goodsService.getSizeInfoList(sizeInfo);
 
-		mav.addObject("measurementList", measurementList);
+		mav.addObject("measurementList", measurementStyleList);
 		mav.addObject("typeCd", typeCd);
 		mav.addObject("typeWith", typeWith);
 		mav.addObject("commonSizeInfoList", commonSizeInfoList);

+ 5 - 7
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -881,7 +881,6 @@ public class TsfOrderController extends TsfBaseController {
 		payment.setUpdNo(custNo);
 
 		// 2. 결재정보등록(TB_PAYMENT)
-		
 		Payment result = orderService.kakaoPayResult(payment);
 		// Payment result = coreKakaoPayService.approveKakaoPayment(payment);
 
@@ -907,7 +906,7 @@ public class TsfOrderController extends TsfBaseController {
 			orderService.deleteCartOrdNo(order);
 		}
 
-		// TODO 5. 2021.05.10 보증보험 API 연동
+		// 5. 2021.05.10 보증보험 API 연동
 		orderService.updateInsurance(order);
 
 		// 2021.03.16 주문완료화면이동처리
@@ -970,7 +969,7 @@ public class TsfOrderController extends TsfBaseController {
 			orderService.deleteCartOrdNo(order);
 		}
 
-		// TODO 5. 2021.05.10 보증보험 API 연동
+		// 5. 2021.05.10 보증보험 API 연동
 		orderService.updateInsurance(order);
 
 		// 2021.03.16 주문완료화면이동처리
@@ -1034,19 +1033,18 @@ public class TsfOrderController extends TsfBaseController {
 			return mav;
 		}
 		
-		// TODO 2021.05.31 알림톡전송 주문완료정보
-		/*
-		if (StringUtils.isNotBlank(orderInfo.getCellPhnno())) {
+		// TODO 2021.05.31 알림톡전송 주문완료정보		
+		if (StringUtils.isNotBlank(orderInfo.getOrdPhnno())) {
 			Integer userNo = orderInfo.getCustNo();
 			try {
 				orderInfo.setGoodsNm((String) resultMap.get("goodsNm"));
+				orderInfo.setGoodsCnt(String.valueOf(resultMap.get("goodsCnt")));
 				kakaotalkService.sendOrderComplete(orderInfo, userNo);
 			} catch (Exception e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
 		}
-		*/
 		
 		// 2021.04.27 마일리지, 제휴할인정보
 		Order payOrder = orderService.getPaymentInfoForMypage(order);

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

@@ -0,0 +1,42 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 실측사이즈 온라인용 Domain
+ *
+ * @author eskim
+ * @since 2021. 06. 01
+ */
+@SuppressWarnings("serial")
+@Data
+public class MeasurementStyle extends TscBaseDomain {
+
+	private String goodsCd;
+	private String typecd;		// 상하의타입 - 상의, 하의
+	private int sizeCount;
+	private String size1; 
+	private String size2;
+	private String size3;
+	private String size4;
+	private String size5;
+	private String size6;
+	private String size7;
+	private String size8;
+	private String size9;
+	private String size10;
+	private String size11;
+	private String size12;
+	private String size13;
+	private String size14;
+	private String size15;
+	private String size16;
+	private String size17;
+	private String size18;
+	private String size19;
+	private String size20;	
+	
+
+}

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

@@ -1411,7 +1411,10 @@
 		         , G.LIST_PRICE         /*정상가(최초판매가)*/
 		         , G.CURR_PRICE         /*현재판매가*/
 		         , G.REG_DT             /*등록일시*/
-		         , G.NUMB
+		         , G.DISP_ORD
+		         <if test="contentsLoc == 'SCM002'">
+		         , G.SELL_WEEK_QTY
+		         </if>
 		    FROM   (
 		            SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
 		                            BG.BRAND_GROUP_ENM
@@ -1430,33 +1433,26 @@
 		                 , G.LIST_PRICE                                             /*정상가(최초판매가)*/
 		                 , G.CURR_PRICE                                             /*현재판매가*/
 		                 , G.REG_DT                                                 /*등록일시*/
-		                 <choose>
-		                     <when test="contentsLoc == 'SCM113'"> <!-- 베스트 -->
-		                 , ROW_NUMBER() OVER(ORDER BY GS.SELL_WEEK_QTY DESC
-		                                            , G.GOODS_CD) AS NUMB
-		                     </when>
-		                     <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
-		                 , ROW_NUMBER() OVER(ORDER BY CTG.DISP_ORD
-		                 , G.REG_DT DESC
-		                 , G.GOODS_CD) AS NUMB
-		                     </when>
-		                     <when test="contentsLoc == 'SCM002' or (contentsLoc == 'SCM003' and pageGb == null)"> <!-- md추천 -->
-		                  , ROW_NUMBER() OVER(ORDER BY CG.DISP_ORD ,G.UPD_DT DESC, G.CURR_PRICE DESC, G.GOODS_CD ASC) AS NUMB
-		                     </when>
-		                     <when test="contentsLoc == 'SCM003' and pageGb != null and pageGb == 'BEST'">
-		                  , ROW_NUMBER() OVER(ORDER BY C4.CATE1_NO, CG.DISP_ORD ,G.UPD_DT DESC, G.CURR_PRICE DESC, G.GOODS_CD ASC) AS NUMB
-		                     </when>
-		                     <otherwise>
-		                 , ROW_NUMBER() OVER(ORDER BY CG.DISP_ORD
-		                                            , G.REG_DT DESC
-		                                            , G.GOODS_CD) AS NUMB
-		                     </otherwise>
-		                 </choose>
+		                 , G.UPD_DT
+		            <choose>
+		                <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'">
+		                 , CT.DISP_ORD
+		                 </when>
+		                 <otherwise>
+		                 , CG.DISP_ORD
+		                 </otherwise>
+		            </choose>
+		            <if test="contentsLoc == 'SCM002'">
+		                , GS.SELL_WEEK_QTY
+		            </if>
+		            <if test="contentsLoc == 'SCM003' and pageGb != null and pageGb == 'BEST'">
+		                , C4.CATE1_NO
+		            </if>
 		            <choose>
 		                <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
 		                    FROM	TB_CONTENTS CT
 		                    , TMP_CONTENTS_GOODS CTG
-		                    , TB_GOODS G USE INDEX (IX_GOODS_11)
+		                    , TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11)
 		                    , TB_GOODS_STOCK S
 		                    , TB_BRAND B
 		                    , TB_BRAND_GROUP BG
@@ -1473,7 +1469,7 @@
 		                <otherwise>
 		                    FROM   TB_CATE_4SRCH C4
 		                    , TB_CATE_GOODS CG
-		                    , TB_GOODS G USE INDEX (IX_GOODS_11)
+		                    , TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11)
 		                    , TB_GOODS_STOCK S
 		                    , TB_BRAND B
 		                    , TB_BRAND_GROUP BG
@@ -1520,21 +1516,39 @@
 		            AND    BG.USE_YN = 'Y'
 		            <if test="pageGb != null and pageGb == 'BEST'">
 		            ORDER BY C4.CATE1_NO
+		            LIMIT 100
 		            </if>
 		           ) G
 		    WHERE  1=1
+		<choose>
+		    <when test="contentsLoc == 'SCM113'"> <!-- 베스트 -->
+		     ORDER BY G.SELL_WEEK_QTY DESC , G.GOODS_CD
+		    </when>
+		    <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
+		     ORDER BY G.DISP_ORD , G.REG_DT DESC , G.GOODS_CD
+		    </when>
+		    <when test="contentsLoc == 'SCM002' or (contentsLoc == 'SCM003' and pageGb == null)"> <!-- md추천 -->
+		     ORDER BY G.DISP_ORD ,G.UPD_DT DESC, G.CURR_PRICE DESC, G.GOODS_CD ASC
+		    </when>
+		    <when test="contentsLoc == 'SCM003' and pageGb != null and pageGb == 'BEST'">
+		     ORDER BY G.CATE1_NO, G.DISP_ORD ,G.UPD_DT DESC, G.CURR_PRICE DESC, G.GOODS_CD ASC
+		    </when>
+		    <otherwise>
+		     ORDER BY G.DISP_ORD , G.REG_DT DESC , G.GOODS_CD
+		    </otherwise>
+		</choose>
 		<if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
 		    <choose>
 		        <when test="pageGb == 'BEST' and pageable.endRow >= 100">
-		    AND  G.NUMB BETWEEN #{pageable.startRow} AND 100
+		    LIMIT 100
 		        </when>
 		        <otherwise>
-		    AND  G.NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
+		    LIMIT #{pageable.limitStartRow} , #{pageable.pageSize}
 		        </otherwise>
 		    </choose>
 		</if>
 		<if test="maxRow != null and maxRow !=''">
-			AND  G.NUMB <![CDATA[<=]]> #{maxRow}
+		    LIMIT #{maxRow}
 		</if>
 		)
 		SELECT G.BRAND_GROUP_NM
@@ -1661,7 +1675,7 @@
 		        	<when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
 		        		FROM	TB_CONTENTS CT
 		        		, TMP_CONTENTS_GOODS CTG
-		        		, TB_GOODS G USE INDEX (IX_GOODS_11)
+		        		, TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11)
 		        		, TB_GOODS_STOCK S
 		        		, TB_BRAND B
 		        		, TB_BRAND_GROUP BG
@@ -1678,7 +1692,7 @@
 		        	<otherwise>
 		        		FROM   TB_CATE_4SRCH C4
 		        		, TB_CATE_GOODS CG
-		        		, TB_GOODS G USE INDEX (IX_GOODS_11)
+		        		, TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11)
 		        		, TB_GOODS_STOCK S
 		        		, TB_BRAND B
 		        		, TB_BRAND_GROUP BG
@@ -1759,7 +1773,6 @@
 		         , G.LIST_PRICE         /*정상가(최초판매가)*/
 		         , G.CURR_PRICE         /*현재판매가*/
 		         , G.REG_DT             /*등록일시*/
-		         , G.NUMB
 		    FROM   (
 		            SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
 		                            BG.BRAND_GROUP_ENM
@@ -1778,11 +1791,9 @@
 		                 , G.LIST_PRICE                                             /*정상가(최초판매가)*/
 		                 , G.CURR_PRICE                                             /*현재판매가*/
 		                 , G.REG_DT                                                 /*등록일시*/
-		                 , ROW_NUMBER() OVER(ORDER BY G.REG_DT DESC
-		                                            , G.GOODS_CD) AS NUMB
 		            FROM   TB_CATE_4SRCH C4
 		                 , TB_CATE_GOODS CG
-		                 , TB_GOODS G USE INDEX (IX_GOODS_11)
+		                 , TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11)
 		                 , TB_GOODS_STOCK GS
 		                 , TB_BRAND B
 		                 , TB_BRAND_GROUP BG
@@ -1820,11 +1831,12 @@
 		            AND    BG.USE_YN = 'Y'
 		           ) G
 		    WHERE  1=1
+		    ORDER BY G.REG_DT DESC, G.GOODS_CD
 		<if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
-			AND  G.NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
+			LIMIT #{pageable.limitStartRow} , #{pageable.pageSize}
 		</if>
 		<if test="maxRow != null and maxRow !=''">
-			AND  G.NUMB <![CDATA[<=]]> #{maxRow}
+			LIMIT #{maxRow}
 		</if>
 		)
 		SELECT G.BRAND_GROUP_NM
@@ -1970,7 +1982,7 @@
 		               , GS.REVIEW_REG_CNT                       /*리뷰등록건수*/
 		          FROM   TB_CATE_4SRCH C4
 		          INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		          INNER JOIN TB_GOODS G USE INDEX (IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
+		          INNER JOIN TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
 		          INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
 		          INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		          INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
@@ -2134,7 +2146,7 @@
 		             , GS.REVIEW_REG_CNT                       /*리뷰등록건수*/
 		         FROM   TB_CATE_4SRCH C4
 		         INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		         INNER JOIN TB_GOODS G USE INDEX (IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
+		         INNER JOIN TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
 		         INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
 		         INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		         INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
@@ -2306,7 +2318,7 @@
 		                , GS.REVIEW_REG_CNT                       /*리뷰등록건수*/
 		            FROM   TB_CATE_4SRCH C4
 		            INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		            INNER JOIN TB_GOODS G USE INDEX (IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
+		            INNER JOIN TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
 		            INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
 		            INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		            INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
@@ -2470,7 +2482,7 @@
 		               , GS.REVIEW_REG_CNT                       /*리뷰등록건수*/
 		         FROM   TB_CATE_4SRCH C4
 		         INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		         INNER JOIN TB_GOODS G USE INDEX (IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
+		         INNER JOIN TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
 		         INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
 		         INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		         INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO

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

@@ -618,5 +618,18 @@
 		   AND ORD_PHNNO = #{ordPhnno}
 	</select>
 
-
+	<select id="getRealPaymentAmt" parameterType="Order" resultType="int">
+		SELECT OD.REAL_ORD_AMT + DF.REAL_DELV_AMT AS PAY_AMT
+		FROM   (SELECT OD.ORD_NO
+		             , SUM(OD.REAL_ORD_AMT) AS REAL_ORD_AMT
+		        FROM   TB_ORDER_DETAIL OD
+		        WHERE  OD.ORD_NO = #{ordNo}
+			    GROUP  BY OD.ORD_NO) OD
+		INNER  JOIN (SELECT DF.ORD_NO
+		                 , SUM(DF.REAL_DELV_AMT) AS REAL_DELV_AMT
+		            FROM   TB_DELIVERY_FEE DF
+		            WHERE  DF.ORD_NO = #{ordNo}
+		            GROUP  BY DF.ORD_NO) DF
+		ON     OD.ORD_NO = DF.ORD_NO
+	</select>
 </mapper>

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

@@ -90,7 +90,7 @@ naverPay:
     button.pc.js.url : https://test-pay.naver.com/customer/js/naverPayButton.js
     button.mobile.js.url : https://test-pay.naver.com/customer/js/mobile/naverPayButton.js
     common.certification.key : s_3799db3bf4af-
-    certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
+    certification.key: E3122594-C690-4542-B3A0-E74ABD4E8222
     order.api.url: https://test-api.pay.naver.com/o/customer/api/order/v20/register
     order.pc.url: https://test-order.pay.naver.com/customer/buy/
     order.mobile.url: https://test-m.pay.naver.com/o/customer/buy/

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

@@ -102,7 +102,7 @@ naverPay:
     button.pc.js.url: https://test-pay.naver.com/customer/js/naverPayButton.js
     button.mobile.js.url: https://test-pay.naver.com/customer/js/mobile/naverPayButton.js
     common.certification.key: s_3799db3bf4af-
-    certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
+    certification.key: E3122594-C690-4542-B3A0-E74ABD4E8222
     order.api.url: https://test-api.pay.naver.com/o/customer/api/order/v20/register
     order.pc.url: https://test-order.pay.naver.com/customer/buy/
     order.mobile.url: https://test-m.pay.naver.com/o/customer/buy/

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

@@ -95,7 +95,7 @@ naverPay:
     button.pc.js.url: https://test-pay.naver.com/customer/js/naverPayButton.js
     button.mobile.js.url: https://test-pay.naver.com/customer/js/mobile/naverPayButton.js
     common.certification.key : s_3799db3bf4af-
-    certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
+    certification.key: E3122594-C690-4542-B3A0-E74ABD4E8222
     order.api.url: https://test-api.pay.naver.com/o/customer/api/order/v20/register
     order.pc.url: https://test-order.pay.naver.com/customer/buy/
     order.mobile.url: https://test-m.pay.naver.com/o/customer/buy/

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

@@ -32,6 +32,8 @@
 	<meta property="eg:category1" content="" />
 	<meta property="eg:category2" content="" />
 	<meta property="eg:category3" content="" />
+	<meta property="eg:category4" content="" />
+	<meta property="eg:category5" content="" />
 	<meta property="eg:brandId" content="" />
 	<meta property="eg:brandName" content="" />
 	<meta property="eg:regDate" content="" />

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

@@ -45,11 +45,11 @@
 			<div class="movblock">
 				<th:block th:if="${goodsVideo.videoGb == 'Y'}">
 				<div style="height:4rem"></div><!-- 여백용 html -->
-				<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+				<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0&mute=1'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 				</th:block>
 				<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
 				<div style="height:4rem"></div><!-- 여백용 html -->
-				<iframe class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?enable_initialize_focus=false&autoplay&mute&controls_activation=none'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+				<iframe class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?player_version=html5&mute'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 				</th:block>
 			</div>
 			</th:block>

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

@@ -980,34 +980,34 @@
 	var fnGoodsDealSaleOpen = function(goodsCd){
 		$("#pdDescrpPop .close-modal ").click();
 		$('.container').addClass('btPop_open');
-		$(".Purchase_pop .pop_option_select").show();
+		$(".pop_option_select").show();
 		popOpenScroll();
 		let selIdx = 0;
-		$('.Purchase_pop .pop_option_select').find('#form_field_item_Up .list li').each(function() { 
+		$('.pop_option_select').find('#form_field_item_Up .list li').each(function() { 
 			if (goodsCd == $(this).find('.item_prod').attr('goodscd')){
 				return false;
 			}
 			selIdx ++;
 		});
 		
-		$('.Purchase_pop .pop_option_select').find('#form_field_item_Up .list li').eq(selIdx).trigger("click");
+		$('.pop_option_select').find('#form_field_item_Up .list li').eq(selIdx).trigger("click");
 		return false;
 	}	
 	
 	//팝업 - 딜상세정보 옵션선택 > 옵션셀렉트팝업
 	var fnGoodsDealOptionOpen = function(goodsCd){
 		$('.container').addClass('btPop_open');
-		$(".Purchase_pop .pop_option_select").show();
+		$(".pop_option_select").show();
 		popOpenScroll();
 		let selIdx = 0;
-		$('.Purchase_pop .pop_option_select').find('#form_field_item_Up .list li').each(function() { 
+		$('.pop_option_select').find('#form_field_item_Up .list li').each(function() { 
 			if (goodsCd == $(this).find('.item_prod').attr('goodscd')){
 				return false;
 			}
 			selIdx ++;
 		});
 		
-		$('.Purchase_pop .pop_option_select').find('#form_field_item_Up .list li').eq(selIdx).trigger("click");
+		$('.pop_option_select').find('#form_field_item_Up .list li').eq(selIdx).trigger("click");
 		return false;
 	}	
 	
@@ -1285,9 +1285,9 @@
 		 	$(".pop_option_select").show();
 			 return false;
 		 });
-		$(document).on('click','.Purchase_pop .close',function(e){
+		$(document).on('click','.pop_option_select .close',function(e){
 			$(".pop_option_select").hide();
-			$('.option_result .option_open').removeClass('on');
+			$(".option_open").removeClass("on");
 			 return false;
 		 })
 //			//팝업 - 딜상세정보 옵션선택 > 옵션셀렉트팝업 ==> fnGoodsDealOptionOpen()대체
@@ -1444,13 +1444,13 @@
 			var cate4Nm = "";
 			var cate5Nm = "";
 			if (!gagajf.isNull(goodsNavigation)) {
-				cate1Nm = goodsNavigation.cate1Nm;
-				cate2Nm = goodsNavigation.cate2Nm;
-				cate3Nm = goodsNavigation.cate3Nm;
-				cate4Nm = goodsNavigation.cate4Nm;
-				cate5Nm = goodsNavigation.cate3Nm;
-				
-				if (!gagajf.isNull(cate1Nm)) {
+				cate1Nm = goodsNavigation.cate1No;
+				cate2Nm = goodsNavigation.cate2No;
+				cate3Nm = goodsNavigation.cate3No;
+				cate4Nm = goodsNavigation.cate4No;
+				cate5Nm = goodsNavigation.cate5No;
+				cateNm  = cate3Nm;
+				/* if (!gagajf.isNull(cate1Nm)) {
 					cateNm += cate1Nm;
 				}
 				if (!gagajf.isNull(cate2Nm)) {
@@ -1464,7 +1464,7 @@
 				}
 				if (!gagajf.isNull(cate5Nm)) {
 					cateNm += ' > ' + cate5Nm;
-				}
+				} */
 			}
 			// 광고 스크립트용
 			

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

@@ -309,11 +309,11 @@
 					<div class="movblock">
 						<th:block th:if="${goodsVideo.videoGb == 'Y'}">
 						<div style="height:4rem"></div><!-- 여백용 html -->
-						<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+						<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0&mute=1'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 						</th:block>
 						<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
 						<div style="height:4rem"></div><!-- 여백용 html -->
-						<iframe class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?enable_initialize_focus=false&autoplay&mute&controls_activation=none'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+						<iframe class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?player_version=html5&mute'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 						</th:block>
 					</div>
 					</th:block>
@@ -2613,13 +2613,13 @@
 		var cate4Nm = "";
 		var cate5Nm = "";
 		if (!gagajf.isNull(goodsNavigation)) {
-			cate1Nm = goodsNavigation.cate1Nm;
-			cate2Nm = goodsNavigation.cate2Nm;
-			cate3Nm = goodsNavigation.cate3Nm;
-			cate4Nm = goodsNavigation.cate4Nm;
-			cate5Nm = goodsNavigation.cate3Nm;
-			
-			if (!gagajf.isNull(cate1Nm)) {
+			cate1Nm = goodsNavigation.cate1No;
+			cate2Nm = goodsNavigation.cate2No;
+			cate3Nm = goodsNavigation.cate3No;
+			cate4Nm = goodsNavigation.cate4No;
+			cate5Nm = goodsNavigation.cate5No;
+			cateNm  = cate3Nm;
+			/* if (!gagajf.isNull(cate1Nm)) {
 				cateNm += cate1Nm;
 			}
 			if (!gagajf.isNull(cate2Nm)) {
@@ -2633,7 +2633,7 @@
 			}
 			if (!gagajf.isNull(cate5Nm)) {
 				cateNm += ' > ' + cate5Nm;
-			}
+			} */
 		}
 		// 광고 스크립트용
 		

+ 94 - 38
src/main/webapp/WEB-INF/views/mob/goods/GoodsSizeInfoFormMob.html

@@ -38,51 +38,107 @@
 						<div class="size_cont">
 							<div class="size_tbl_box">
 								<p class="size_unit">단위 : cm</p>
-								<div class="tbl type2">
-									<table>
-										<colgroup>
-											<col/>
-											<col th:attr="width=${typeWith+'%'}">
-											<col th:attr="width=${typeWith+'%'}">
-											<col th:attr="width=${typeWith+'%'}">
-											<col th:attr="width=${typeWith+'%'}">
-											<th:block th:if="${typeCd == '하의'}">
-											<col th:attr="width=${typeWith+'%'}">
-											</th:block>
-										</colgroup>
-										<thead>
-											<tr>
-												<th scope="col">&nbsp;</th>
+								<div class="tbl type2 scroll_tbl">
+									<div class="head_t">
+										<table>
+											<colgroup>
+												<col width="20%">
+											</colgroup>
+											<thead>
+												<tr>
+													<th>&nbsp;</th>
+												</tr>
+											</thead>
+											<tbody>
+												<th:block th:each="measurement, status : ${measurementList}" th:if="${status.first}">
 												<th:block th:if="${typeCd == '상의'}">
-												<th scope="col">가슴둘레</th>
-												<th scope="col">어깨너비</th>
-												<th scope="col">팔길이</th>
-												<th scope="col">총길이</th>
+												<tr>
+													<td scope="col">가슴둘레</td>
+												</tr>
+												<tr>
+													<td scope="col">어깨너비</td>
+												</tr>
+												<tr>
+													<td scope="col">팔길이</td>
+												</tr>
+												<tr>
+													<td scope="col">총길이</td>
+												</tr>
 												</th:block>
 												<th:block th:unless="${typeCd == '상의'}">
-												<th scope="col">허리둘레</th>
-												<th scope="col">밑위</th>
-												<th scope="col">엉덩이둘레</th>
-												<th scope="col">허벅지둘레</th>
-												<th scope="col">총길이</th>
 												</th:block>
-											</tr>
-										</thead>
-										<tbody>
-											<tr th:each="measurement, status : ${measurementList}">
-												<th scope="col" th:text="${measurement.optCd2}"></th>
-												<td th:text="${measurement.value1}">95</td>
-												<td th:text="${measurement.value2}">100</td>
-												<td th:text="${measurement.value3}">105</td>
-												<td th:text="${measurement.value4}">110</td>
-												<td th:text="${measurement.value5}" th:if="${typeCd == '하의'}">110</td>
-											</tr>
-										</tbody>
-									</table>
+												<tr>
+													<td scope="col">허리둘레</td>
+												</tr>
+												<tr>
+													<td scope="col">밑위</td>
+												</tr>
+												<tr>
+													<td scope="col">엉덩이둘레</td>
+												</tr>
+												<tr>
+													<td scope="col">허벅지둘레</td>
+												</tr>
+												<tr>
+													<td scope="col">총길이</td>
+												</tr>
+												</th:block>
+											</tbody>
+										</table>
+									</div>
+									<div class="body_t">
+										<table>
+											<colgroup th:each="measurement, status : ${measurementList}" th:if="${status.first}">
+												<col th:if="${measurement.size1}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size2}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size3}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size4}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size5}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size6}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size7}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size8}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size9}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size10}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size11}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size12}" th:attr="width=${typeWith+'%'}">
+											</colgroup>
+											<thead>
+												<tr th:each="measurement, status : ${measurementList}" th:if="${status.first}" th:with="sizeCount=${measurement.sizeCount}">
+													<th scope="col" th:if="${measurement.size1}" th:text="${measurement.size1}">M</th>
+													<th scope="col" th:if="${measurement.size2}" th:text="${measurement.size2}">M</th>
+													<th scope="col" th:if="${measurement.size3}" th:text="${measurement.size3}">M</th>
+													<th scope="col" th:if="${measurement.size4}" th:text="${measurement.size4}">M</th>
+													<th scope="col" th:if="${measurement.size5}" th:text="${measurement.size5}">M</th>
+													<th scope="col" th:if="${measurement.size6}" th:text="${measurement.size6}">M</th>
+													<th scope="col" th:if="${measurement.size7}" th:text="${measurement.size7}">M</th>
+													<th scope="col" th:if="${measurement.size8}" th:text="${measurement.size8}">M</th>
+													<th scope="col" th:if="${measurement.size9}" th:text="${measurement.size9}">M</th>
+													<th scope="col" th:if="${measurement.size10}" th:text="${measurement.size10}">M</th>
+													<th scope="col" th:if="${measurement.size11}" th:text="${measurement.size11}">M</th>
+													<th scope="col" th:if="${measurement.size12}" th:text="${measurement.size12}">M</th>
+												</tr>
+											</thead>
+											<tbody>
+												<tr th:each="measurement, status : ${measurementList}" th:if="${not status.first}">
+													<td th:if="${measurement.size1}" th:text="${measurement.size1}">95</td>
+													<td th:if="${measurement.size2}" th:text="${measurement.size2}">95</td>
+													<td th:if="${measurement.size3}" th:text="${measurement.size3}">95</td>
+													<td th:if="${measurement.size4}" th:text="${measurement.size4}">95</td>
+													<td th:if="${measurement.size5}" th:text="${measurement.size5}">95</td>
+													<td th:if="${measurement.size6}" th:text="${measurement.size6}">95</td>
+													<td th:if="${measurement.size7}" th:text="${measurement.size7}">95</td>
+													<td th:if="${measurement.size8}" th:text="${measurement.size8}">95</td>
+													<td th:if="${measurement.size9}" th:text="${measurement.size9}">95</td>
+													<td th:if="${measurement.size10}" th:text="${measurement.size10}">95</td>
+													<td th:if="${measurement.size11}" th:text="${measurement.size11}">95</td>
+													<td th:if="${measurement.size12}" th:text="${measurement.size12}">95</td>
+												</tr>
+											</tbody>
+										</table>
+									</div>
 								</div>
 							</div>
 						</div>
-						<!-- //실측 사이즈 -->
 					</div>
 					<div class="tab_cont"  th:if="${(commonSizeInfoList != null and !commonSizeInfoList.empty) or (brandSizeInfoList != null and !brandSizeInfoList.empty)}"
 											th:style="|display:${(measurementList == null or measurementList.empty) ? 'block': 'none' }|">

+ 40 - 35
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewFormMob.html

@@ -58,16 +58,22 @@
 									</div>
 								</div>
 								<!-- tab_cont Start -->
-								<div id="reviewList">
+								<div class="inner">
+									<!-- 작성가능한 리뷰 div -->
+									<div class="items_group" style="display: none;" id="completeList">
+									</div>
+									<div style="display: none;" id="alreadyList">
+									</div>
 
+									<div class="btn_group" id="btnMoreDiv" style="display: none;">
+										<div><button class="btn btnIcon_more" id="btnMore">더보기</button></div>
+									</div>
+										<div class="btn_group" id="btnMore2Div" style="display: none;">
+										<div><button class="btn btnIcon_more" id="btnMore2">더보기</button></div>
+									</div>
+								
 								</div>
-								<div class="ui_foot" style="display:none;">
-									<button class="btn btnM btnIcon_more" id="btnMore"  style="width: 100%;">더보기</button>
-								</div>
-								<div class="ui_foot" style="display:none;">
-									<button class="btn btnM btnIcon_more" id="btnMore2"  style="width: 100%;">더보기</button>
-								</div>
-							<!-- // tab_cont End -->
+							    <!-- // tab_cont End -->
 							</div>
 
 						</div>
@@ -101,11 +107,11 @@
 	var fnGetAlreadyCallback = function (result) {
 			if (result.dataList2 != null && result.dataList2.length > 0) {
 				if (result.paging2.pageable.pageNo == 1){
-					$('#reviewList').html('');
+					$('#alreadyList').html('');
 				}	
 				var html = '';
 				$.each(result.dataList2, function(idx, item) {
-					html += '<div class="inner">\n'
+					html += '<div class="reviewitems">\n';
 					html += '	<div class="part_goods">\n';
 					html += '		<div class="goods_section">\n';
 					html += '			<div class="goods_detail">\n';
@@ -248,17 +254,17 @@
 					html += '			<div><button type="button" id="btn_review_delete" class="btn btn_default" onclick="fnDeleteReview('+item.reviewSq+')"><span>리뷰 삭제</span></button></div>\n';
 					html += '		</div>\n';
 					html += '	</div>\n';
-					html += '</div>\n'
+					html += '</div>\n';
 				});
 				
-				$('#reviewList').append(html);
+				$('#alreadyList').append(html);
 				if (result.paging2.pageable.totalPage > result.paging2.pageable.pageNo) {
-					$('#btnMore').parent().hide();
-					$('#btnMore2').parent().show();
+					$('#btnMoreDiv').hide();
+					$('#btnMore2Div').show();
 					$('#searchForm2 input[name=pageNo]').val(result.paging2.pageable.pageNo + 1);
 				}else{
-					$('#btnMore2').parent().hide();
-					$('#btnMore').parent().hide();
+					$('#btnMoreDiv').hide();
+					$('#btnMore2Div').hide();
 				}
 				
 			}else{
@@ -270,20 +276,18 @@
 				html += '		</p>';
 				html += '	</div>\n';
 				html += '</div>\n';
-				$('#btnMore2').parent().hide();
-				$('#btnMore').parent().hide();
-				$('#reviewList').append(html);
+				$('#btnMoreDiv').hide();
+				$('#btnMore2Div').hide();
+				$('#alreadyList').append(html);
 			}
 	}
 	
 	var fnGetCompleteCallback = function (result) {
-		
 		if (result.dataList1 != null && result.dataList1.length > 0) {
 			if (result.paging1.pageable.pageNo == 1){
-				$('#reviewList').html('');
+				$('#completeList').html('');
 			}	
-			var html =  '<div class="inner">\n';
-			html += '	<div class="part_goods">\n';
+			var html = '	<div class="part_goods">\n';
 			$.each(result.dataList1, function(idx, item) {
 				html += '		<div class="goods_section">\n';
 				html += '			<div class="goods_detail">\n';
@@ -321,13 +325,12 @@
 				html += '		</div>\n';
 			});
 			html += '	</div>\n';
-			html += '</div>\n';
-			$('#reviewList').append(html);
+			$('#completeList').append(html);
 			if (result.paging1.pageable.totalPage > result.paging1.pageable.pageNo) {
-				$('#btnMore').parent().show();
+				$('#btnMoreDiv').show();
 				$('#searchForm1 input[name=pageNo]').val(result.paging1.pageable.pageNo + 1);
 			}else{
-				$('#btnMore').parent().hide();
+				$('#btnMoreDiv').hide();
 			}
 		}else{
 			var html = '';
@@ -339,8 +342,8 @@
 			html += '	</div>\n';
 			html += '</div>\n';
 			
-			$('#reviewList').append(html);
-			$('#btnMore').parent().hide();
+			$('#completeList').append(html);
+			$('#btnMoreDiv').hide();
 		}
 	}
 	
@@ -348,9 +351,10 @@
 		$("#alreadyReview").removeClass("active");
 		$("#completeReview").addClass("active");
 		$("#check_notice").hide();
-		$('#btnMore2').hide();
-		$('#btnMore').show();
-		$('#reviewList').html('');
+		$('#btnMoreDiv').show();
+		$('#btnMore2Div').hide();
+		$("#completeList").show();
+		$("#alreadyList").hide();
 		$("#searchForm1 input[name=pageNo]").val(1);
 		fnCompleteList();
 	})
@@ -360,9 +364,10 @@
 		$("#completeReview").removeClass("active");
 		$("#alreadyReview").addClass("active");
 		$("#check_notice").show();
-		$('#btnMore').hide();
-		$('#btnMore2').show();
-		$('#reviewList').html('');
+		$('#btnMoreDiv').hide();
+		$('#btnMore2Div').show();
+		$("#alreadyList").show();
+		$("#completeList").hide();
 		$("#searchForm2 input[name=pageNo]").val(1);
 		fnAlreadyList();
 		

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

@@ -31,6 +31,8 @@
 	<meta property="eg:category1" content="" />
 	<meta property="eg:category2" content="" />
 	<meta property="eg:category3" content="" />
+	<meta property="eg:category4" content="" />
+	<meta property="eg:category5" content="" />
 	<meta property="eg:brandId" content="" />
 	<meta property="eg:brandName" content="" />
 	<meta property="eg:regDate" content="" />

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

@@ -1162,13 +1162,13 @@ function buy_nc_req(cartSqArr) {
 	var cate4Nm = "";
 	var cate5Nm = "";
 	if (!gagajf.isNull(goodsNavigation)) {
-		cate1Nm = goodsNavigation.cate1Nm;
-		cate2Nm = goodsNavigation.cate2Nm;
-		cate3Nm = goodsNavigation.cate3Nm;
-		cate4Nm = goodsNavigation.cate4Nm;
-		cate5Nm = goodsNavigation.cate3Nm;
-		
-		if (!gagajf.isNull(cate1Nm)) {
+		cate1Nm = goodsNavigation.cate1No;
+		cate2Nm = goodsNavigation.cate2No;
+		cate3Nm = goodsNavigation.cate3No;
+		cate4Nm = goodsNavigation.cate4No;
+		cate5Nm = goodsNavigation.cate5No;
+		cateNm  = cate3Nm;
+		/* if (!gagajf.isNull(cate1Nm)) {
 			cateNm += cate1Nm;
 		}
 		if (!gagajf.isNull(cate2Nm)) {
@@ -1181,7 +1181,7 @@ function buy_nc_req(cartSqArr) {
 			cateNm += ' > ' + cate4Nm;
 		}
 		if (!gagajf.isNull(cate5Nm)) {
-			cateNm += ' > ' + cate5Nm;
+			cateNm += ' > ' + cate5Nm */;
 		}
 	}
 	// 광고 스크립트용

+ 9 - 8
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -2104,13 +2104,13 @@
 	var cate4Nm = "";
 	var cate5Nm = "";
 	if (!gagajf.isNull(goodsNavigation)) {
-		cate1Nm = goodsNavigation.cate1Nm;
-		cate2Nm = goodsNavigation.cate2Nm;
-		cate3Nm = goodsNavigation.cate3Nm;
-		cate4Nm = goodsNavigation.cate4Nm;
-		cate5Nm = goodsNavigation.cate3Nm;
-
-		if (!gagajf.isNull(cate1Nm)) {
+		cate1Nm = goodsNavigation.cate1No;
+		cate2Nm = goodsNavigation.cate2No;
+		cate3Nm = goodsNavigation.cate3No;
+		cate4Nm = goodsNavigation.cate4No;
+		cate5Nm = goodsNavigation.cate5No;
+		cateNm  = cate3Nm;
+/* 		if (!gagajf.isNull(cate1Nm)) {
 			cateNm += cate1Nm;
 		}
 		if (!gagajf.isNull(cate2Nm)) {
@@ -2125,7 +2125,8 @@
 		if (!gagajf.isNull(cate5Nm)) {
 			cateNm += ' > ' + cate5Nm;
 		}
-	}
+ */	
+ 	}
 	// 광고 스크립트용
 	
      

+ 99 - 41
src/main/webapp/WEB-INF/views/web/goods/GoodsSizeInfoFormWeb.html

@@ -4,14 +4,14 @@
 <!--
  *******************************************************************************
  * @source  : GoodsSizeInfoFormWeb.html
- * @desc    : 사이즈 안내 팝업
+ * @desc	: 사이즈 안내 팝업
  *============================================================================
  * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
+ * VER  DATE		 AUTHOR	  DESCRIPTION
  * ===  ===========  ==========  =============================================
- * 1.0  2021.03.08   eskim        최초 작성
+ * 1.0  2021.03.08   eskim		최초 작성
  *******************************************************************************
  -->
  <div class="modal-dialog" role="document">
@@ -38,52 +38,109 @@
 						<div class="size_cont">
 							<div class="size_tbl_box">
 								<p class="size_unit">단위 : cm</p>
-								<div class="tbl type2">
-									<table>
-										<colgroup>
-											<col/>
-											<col th:attr="width=${typeWith+'%'}">
-											<col th:attr="width=${typeWith+'%'}">
-											<col th:attr="width=${typeWith+'%'}">
-											<col th:attr="width=${typeWith+'%'}">
-											<th:block th:if="${typeCd == '하의'}">
-											<col th:attr="width=${typeWith+'%'}">
-											</th:block>
-										</colgroup>
-										<thead>
-											<tr>
-												<th scope="col">&nbsp;</th>
+								<div class="tbl type2 scroll_tbl">
+									<div class="head_t">
+										<table>
+											<colgroup>
+												<col width="20%">
+											</colgroup>
+											<thead>
+												<tr>
+													<th>&nbsp;</th>
+												</tr>
+											</thead>
+											<tbody>
+												<th:block th:each="measurement, status : ${measurementList}" th:if="${status.first}">
 												<th:block th:if="${typeCd == '상의'}">
-												<th scope="col">가슴둘레</th>
-												<th scope="col">어깨너비</th>
-												<th scope="col">팔길이</th>
-												<th scope="col">총길이</th>
+												<tr>
+													<td scope="col">가슴둘레</td>
+												</tr>
+												<tr>
+													<td scope="col">어깨너비</td>
+												</tr>
+												<tr>
+													<td scope="col">팔길이</td>
+												</tr>
+												<tr>
+													<td scope="col">총길이</td>
+												</tr>
 												</th:block>
 												<th:block th:unless="${typeCd == '상의'}">
-												<th scope="col">허리둘레</th>
-												<th scope="col">밑위</th>
-												<th scope="col">엉덩이둘레</th>
-												<th scope="col">허벅지둘레</th>
-												<th scope="col">총길이</th>
 												</th:block>
-											</tr>
-										</thead>
-										<tbody>
-											<tr th:each="measurement, status : ${measurementList}">
-												<th scope="col" th:text="${measurement.optCd2}"></th>
-												<td th:text="${measurement.value1}">95</td>
-												<td th:text="${measurement.value2}">100</td>
-												<td th:text="${measurement.value3}">105</td>
-												<td th:text="${measurement.value4}">110</td>
-												<td th:text="${measurement.value5}" th:if="${typeCd == '하의'}">110</td>
-											</tr>
-										</tbody>
-									</table>
+												<tr>
+													<td scope="col">허리둘레</td>
+												</tr>
+												<tr>
+													<td scope="col">밑위</td>
+												</tr>
+												<tr>
+													<td scope="col">엉덩이둘레</td>
+												</tr>
+												<tr>
+													<td scope="col">허벅지둘레</td>
+												</tr>
+												<tr>
+													<td scope="col">총길이</td>
+												</tr>
+												</th:block>
+											</tbody>
+										</table>
+									</div>
+									<div class="body_t">
+										<table>
+											<colgroup th:each="measurement, status : ${measurementList}" th:if="${status.first}">
+												<col th:if="${measurement.size1}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size2}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size3}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size4}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size5}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size6}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size7}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size8}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size9}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size10}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size11}" th:attr="width=${typeWith+'%'}">
+												<col th:if="${measurement.size12}" th:attr="width=${typeWith+'%'}">
+											</colgroup>
+											<thead>
+												<tr th:each="measurement, status : ${measurementList}" th:if="${status.first}" th:with="sizeCount=${measurement.sizeCount}">
+													<th scope="col" th:if="${measurement.size1}" th:text="${measurement.size1}">M</th>
+													<th scope="col" th:if="${measurement.size2}" th:text="${measurement.size2}">M</th>
+													<th scope="col" th:if="${measurement.size3}" th:text="${measurement.size3}">M</th>
+													<th scope="col" th:if="${measurement.size4}" th:text="${measurement.size4}">M</th>
+													<th scope="col" th:if="${measurement.size5}" th:text="${measurement.size5}">M</th>
+													<th scope="col" th:if="${measurement.size6}" th:text="${measurement.size6}">M</th>
+													<th scope="col" th:if="${measurement.size7}" th:text="${measurement.size7}">M</th>
+													<th scope="col" th:if="${measurement.size8}" th:text="${measurement.size8}">M</th>
+													<th scope="col" th:if="${measurement.size9}" th:text="${measurement.size9}">M</th>
+													<th scope="col" th:if="${measurement.size10}" th:text="${measurement.size10}">M</th>
+													<th scope="col" th:if="${measurement.size11}" th:text="${measurement.size11}">M</th>
+													<th scope="col" th:if="${measurement.size12}" th:text="${measurement.size12}">M</th>
+												</tr>
+											</thead>
+											<tbody>
+												<tr th:each="measurement, status : ${measurementList}" th:if="${not status.first}">
+													<td th:if="${measurement.size1}" th:text="${measurement.size1}">95</td>
+													<td th:if="${measurement.size2}" th:text="${measurement.size2}">95</td>
+													<td th:if="${measurement.size3}" th:text="${measurement.size3}">95</td>
+													<td th:if="${measurement.size4}" th:text="${measurement.size4}">95</td>
+													<td th:if="${measurement.size5}" th:text="${measurement.size5}">95</td>
+													<td th:if="${measurement.size6}" th:text="${measurement.size6}">95</td>
+													<td th:if="${measurement.size7}" th:text="${measurement.size7}">95</td>
+													<td th:if="${measurement.size8}" th:text="${measurement.size8}">95</td>
+													<td th:if="${measurement.size9}" th:text="${measurement.size9}">95</td>
+													<td th:if="${measurement.size10}" th:text="${measurement.size10}">95</td>
+													<td th:if="${measurement.size11}" th:text="${measurement.size11}">95</td>
+													<td th:if="${measurement.size12}" th:text="${measurement.size12}">95</td>
+												</tr>
+											</tbody>
+										</table>
+									</div>
 								</div>
 							</div>
 						</div>
-						<!-- //실측 사이즈 -->
 					</div>
+					<!-- //실측 사이즈 -->
 					<div class="tab_cont" th:if="${(commonSizeInfoList != null and !commonSizeInfoList.empty) or (brandSizeInfoList != null and !brandSizeInfoList.empty)}">
 						<!-- 표준 사이즈 카테고리 구분일때 -->
 						<th:block th:if="${(commonSizeInfoList != null and !commonSizeInfoList.empty) and (brandSizeInfoList == null or brandSizeInfoList.empty)}">
@@ -150,6 +207,7 @@
 		</div>
 	</div>
 </div>
+
 <a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_size_info')" class="close-modal">Close</a>
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 1 - 1
src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html

@@ -158,7 +158,7 @@
 								    tag += '                                   <img alt="" class="vLHTC pd_img" src="' + _uploadGoodsUrl + '/' + goods.sysImgNm + '?RS=1000">\n';
 								    tag += '                               </div>\n';
 								    tag += '                               <div class="itemName">' + goods.goodsNm + '</div>\n';
-								    tag += '                               <p class="itemPrice"' + goods.currPrice.addComma() + '</p>\n';
+								    tag += '                               <p class="itemPrice">' + goods.currPrice.addComma() + '</p>\n';
 								    tag += '                           </a>\n';
 								    tag += '                       </div>\n';
 								    tag += '                   </div>\n';