瀏覽代碼

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

card007 5 年之前
父節點
當前提交
d5c14f011f
共有 23 個文件被更改,包括 296 次插入198 次删除
  1. 10 3
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  2. 161 103
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  3. 3 1
      src/main/java/com/style24/front/biz/service/TsfReviewService.java
  4. 0 3
      src/main/java/com/style24/front/biz/web/TsfCartController.java
  5. 1 0
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  6. 1 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  7. 3 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml
  8. 6 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml
  9. 2 2
      src/main/webapp/WEB-INF/views/mob/common/fragments/FooterMob.html
  10. 9 7
      src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html
  11. 4 4
      src/main/webapp/WEB-INF/views/web/cart/CartDelvFeeSaveGoodsPopupWeb.html
  12. 6 6
      src/main/webapp/WEB-INF/views/web/cart/CartTmtbSalesGoodsPopupWeb.html
  13. 12 8
      src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html
  14. 28 31
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  15. 4 2
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html
  16. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewFormWeb.html
  17. 8 7
      src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html
  18. 4 4
      src/main/webapp/ux/mo/css/common_m.css
  19. 2 2
      src/main/webapp/ux/mo/js/common_m.js
  20. 6 3
      src/main/webapp/ux/pc/css/common.css
  21. 11 3
      src/main/webapp/ux/pc/css/layout.css
  22. 11 3
      src/main/webapp/ux/pc/js/common-ui.js
  23. 3 3
      src/main/webapp/ux/style24_link.js

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

@@ -470,9 +470,10 @@ public class TsfCartService {
 		if(cartSqs.size() > 0) {
 			// 다다익선 할인 상품 조회 (품절 상품 제외)
 			Collection<Order> moreBetterAmtList = new ArrayList<Order>();
-			if(order.getCustNo() > 0) {
+			//if(order.getCustNo() > 0) {		// 비회원도 다다익선 적용 여부 및 금액 노출되도록 수정. (한수인리더 요청) :: 20210517
+				order.setCartYn("Y");
 				moreBetterAmtList = getMoreBetterAmtList(order);
-			}
+			//}
 
 			// 다다익선 할인 정보 및 상품 정보 장바구니에 등록
 			for (Order cart : cartGoodsList) {
@@ -510,6 +511,7 @@ public class TsfCartService {
 
 		// 전체 장바구니 정보
 		order.setDelvAllCartList(cartGoodsList);
+		order.setAllCartCnt(cartGoodsList.size());
 
 		return order;
 	}
@@ -552,8 +554,12 @@ public class TsfCartService {
 		// 장바구니 상품 조회
 		param.setFrontGb(TsfSession.getFrontGb());
 		Collection<Order> cartGoodsList = coreOrderService.getCartGoodsList(param);
+		String cartYn = "N";
+		if(!StringUtils.isEmpty(param.getCartYn())) {
+			cartYn = param.getCartYn();
+		}
 
-		if(param.getCustNo() > 0 ) {
+		if(param.getCustNo() > 0 || "Y".equals(cartYn)) {
 			// 장바구니 내 수량 다다익선 적용 가능 리스트 조회 (등록된 기본,적용 상품 정보 전체 조회)
 			Collection<Order> tmtbApplyList = cartDao.selectMoreBetterApplyCartList(param);
 
@@ -926,6 +932,7 @@ public class TsfCartService {
 
 		// 장바구니 총액 계산 상품 총 수량
 		order.setTotCartCnt(notSoldoutCnt);
+		order.setCartGoodsList(cartGoodsList);
 	}
 
 	public void deleteCart(Cart param) {

+ 161 - 103
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -362,9 +362,6 @@ public class TsfOrderService {
 						param.setOrdNo(param.getOrgOrdNo());
 					}
 
-					log.info("CHECK INFO :::: {}", param.getPgOrdNo());
-					log.info("CHECK INFO :::: {}", param.getOrdNo());
-
 					// 일반 KCP 결제
 					result = coreKcpService.kcpPayRequest(param, request, response);
 				}
@@ -1016,8 +1013,6 @@ public class TsfOrderService {
 			// 장바구니 등록된 주문 정보 조회
 			Collection<Order> cartList = coreOrderService.getCartGoodsList(param);
 
-			log.info("CHECK DELV_FEE 1 ::::: {}", cartList.stream().iterator().next().getDelvFee());
-
 			// 주문 상세 정보 세팅
 			for(Order item : cartList) {
 				item.setSavePntAmt(0);
@@ -1030,18 +1025,14 @@ public class TsfOrderService {
 			}
 			param.setOrderDetailList(cartList);
 
-			log.info("CHECK DELV_FEE 2 ::::: {}", cartList.stream().iterator().next().getDelvFee());
-
 			// 배송비 정보 조회
 			GagaMap delvMap = coreOrderService.getCartDelvGoodsCntList(cartList, param);
 			param.setDelvFeeCdList((Collection<Order>) delvMap.get("delvFeeCdList"));
 
-			log.info("CHECK DELV_FEE 3 ::::: {}", param.getOrderDetailList().stream().iterator().next().getDelvFee());
-
 			// 주문 정보 등록
 			coreOrderService.createPreOrder(param);
-
-			log.info("CHECK DELV_FEE 4 ::::: {}", param.getOrderDetailList().stream().iterator().next().getDelvFee());
+			int ordNo = param.getOrdNo();
+			int custNo = param.getCustNo();
 
 			// 네이버페이 기본정보
 			String shopId			= env.getProperty("naverPay.shop.id");				// shopId
@@ -1054,8 +1045,6 @@ public class TsfOrderService {
 			String goodsImgUrl		= env.getProperty("upload.goods.view");				// 상품 이미지 경로
 			int totPrice			= 0;												// 전체 주문 금액
 
-			log.info("CHECK PARAM ::::: {} / {}", param.getBackUrl(), param.getGoodsUrl());
-
 			// 네이버페이 송부용 xml 작성
 			StringBuffer sb = new StringBuffer();
 			sb.append("<order>\n");
@@ -1070,9 +1059,6 @@ public class TsfOrderService {
 			sb.append("\t</interface>\n");
 
 			for(Order item : param.getOrderDetailList()) {
-
-				log.info("CHECK DELV_FEE 5 ::::: {}", item.getDelvFee());
-
 				//<!-- 상품정보 -->
 				sb.append("\t<product>\n");
 				sb.append("\t\t<id>").append(item.getGoodsCd()).append("</id>\n");								//<!-- 상품코드 -->
@@ -1080,37 +1066,87 @@ public class TsfOrderService {
 				sb.append("\t\t<name>").append(item.getGoodsNm()).append("</name>\n");	//<!-- 상품명 -->
 				sb.append("\t\t<basePrice>").append(item.getCurrPrice() + item.getOptAddPrice()).append("</basePrice>\n");		//<!-- 상품금액 -->
 				// TODO http: 부분 운영 프로토콜 확인 후 수정 필요(운영 상품상세가 HTTPS일 경우 분기처리 필요(개발서버, 운영 구분))
-				sb.append("\t\t<infoUrl>").append("http:" + param.getGoodsUrl() + item.getGoodsCd()).append("</infoUrl>\n");	//<!-- 상품상세페이지 URL -->
+				sb.append("\t\t<infoUrl>").append("http:" + (param.getGoodsUrl() + item.getGoodsCd())).append("</infoUrl>\n");	//<!-- 상품상세페이지 URL -->
 				sb.append("\t\t<imageUrl>").append("http:" + goodsImgUrl + "/" + item.getSysImgNm()).append("</imageUrl>\n");	//<!-- 상품원본이미지 URL -->
+				if(TscConstants.GoodsType.SET.value().equals(item.getGoodsType())) {		// 세트상품
+					// 구성상품 옵션정보 split
+					String[] itemNms  = item.getItemNm().split("!@!");		// 구성상품명
+					String[] optCds   = item.getOptCd().split(",");			// 옵션코드
+					String[] colorNms = item.getColorNm().split(",");			// 컬러명
+					String[] optCd2s  = item.getOptCd2().split(",");			// 사이즈
+					String[] itemCds  = item.getItemCd().split(",");			// 상품코드
+
+					// 상품명, 컬러, 사이즈 확인 ==> 20200517 정지혜과장님 확인 :: 상품명=25,OPT1=13,OPT2=12 글자. 넘어갈경우 뒤에 ".." 붙여서 글자수 맞출것.
+					// 상품명/컬러/사이즈 이므로 가운데 / 를 위해 24, 12, 12로 진행
+					for(int i = 0 ; i < itemNms.length ; i++) {
+						if(itemNms[i].length() > 24)	{itemNms[i]  = itemNms[i].substring(0, 21) + "..";}
+						if(optCd2s[i].length() > 12)	{optCd2s[i]  = optCd2s[i].substring(0, 9)  + "..";}
+						if(colorNms[i].length() > 12)	{colorNms[i] = colorNms[i].substring(0, 9) + "..";}
+
+						// 옵션 정보
+						sb.append("\t\t<option>\n");
+						sb.append("\t\t\t<quantity>").append(item.getGoodsQty()).append("</quantity>\n");	//<!-- 옵션수량-->
+						sb.append("\t\t\t<price>").append(item.getOptAddPrice()).append("</price>\n");		//<!-- 옵션금액 -->
+						sb.append("\t\t\t<manageCode>").append(item.getOptCd()).append("</manageCode>\n");	//<!-- 옵션관리코드 -->
+
+						// 칼라코드
+						sb.append("\t\t\t<selectedItem>\n");
+						sb.append("\t\t\t\t<type>SELECT</type>\n");//<!-- 옵션유형 -->
+						sb.append("\t\t\t\t<name>상품</name>\n");//<!-- 옵션명 -->
+						sb.append("\t\t\t\t<value>\n");
+						sb.append("\t\t\t\t\t<id>").append(itemCds[i]).append("/").append(optCds[i]).append("</id>\n");//<!-- 옵션 -->
+						sb.append("\t\t\t\t\t<text>").append(itemNms[i]).append("/").append(colorNms[i]).append("/").append(optCd2s[i]).append("</text>\n");//<!-- 옵션명 -->
+						sb.append("\t\t\t\t</value>\n");
+						sb.append("\t\t\t</selectedItem>\n");
+						sb.append("\t\t</option>\n");
+					}
 
-				// 옵션 정보
-				sb.append("\t\t<option>\n");
-				sb.append("\t\t\t<quantity>").append(item.getGoodsQty()).append("</quantity>\n");	//<!-- 옵션수량-->
-				sb.append("\t\t\t<price>").append(item.getOptAddPrice()).append("</price>\n");		//<!-- 옵션금액 -->
-				sb.append("\t\t\t<manageCode>").append(item.getOptCd()).append("</manageCode>\n");	//<!-- 옵션관리코드 -->
-
-				// 칼라코드
-				sb.append("\t\t\t<selectedItem>\n");
-				sb.append("\t\t\t\t<type>SELECT</type>\n");//<!-- 옵션유형 -->
-				sb.append("\t\t\t\t<name>색상</name>\n");//<!-- 옵션명 -->
-				sb.append("\t\t\t\t<value>\n");
-				sb.append("\t\t\t\t\t<id>").append(item.getOptCd1()).append("</id>\n");//<!-- 칼라코드 -->
-				sb.append("\t\t\t\t\t<text>").append(item.getColorNm()).append("</text>\n");//<!-- 칼라명 -->
-				sb.append("\t\t\t\t</value>\n");
-				sb.append("\t\t\t</selectedItem>\n");
-
-				// 사이즈코드
-				sb.append("\t\t\t<selectedItem>\n");
-				sb.append("\t\t\t\t<type>SELECT</type>\n");//<!-- 옵션유형 -->
-				sb.append("\t\t\t\t<name>사이즈</name>\n");//<!-- 옵션명 -->
-				sb.append("\t\t\t\t<value>\n");
-				sb.append("\t\t\t\t\t<id>").append(item.getOptCd2()).append("</id>\n");//<!-- 사이즈코드 -->
-				sb.append("\t\t\t\t\t<text>").append(item.getOptCd2()).append("</text>\n");//<!-- 사이즈명 -->
-				sb.append("\t\t\t\t</value>\n");
-				sb.append("\t\t\t</selectedItem>\n");
-				sb.append("\t\t</option>\n");
+				} else if("Y".equals(item.getSelfGoodsYn())) {								// 세트상품 제외 자사상품
+					// 옵션 정보
+					sb.append("\t\t<option>\n");
+					sb.append("\t\t\t<quantity>").append(item.getGoodsQty()).append("</quantity>\n");	//<!-- 옵션수량-->
+					sb.append("\t\t\t<price>").append(item.getOptAddPrice()).append("</price>\n");		//<!-- 옵션금액 -->
+					sb.append("\t\t\t<manageCode>").append(item.getOptCd()).append("</manageCode>\n");	//<!-- 옵션관리코드 -->
+
+					// 칼라코드
+					sb.append("\t\t\t<selectedItem>\n");
+					sb.append("\t\t\t\t<type>SELECT</type>\n");//<!-- 옵션유형 -->
+					sb.append("\t\t\t\t<name>색상</name>\n");//<!-- 옵션명 -->
+					sb.append("\t\t\t\t<value>\n");
+					sb.append("\t\t\t\t\t<id>").append(item.getOptCd1()).append("</id>\n");//<!-- 칼라코드 -->
+					sb.append("\t\t\t\t\t<text>").append(item.getColorNm()).append("</text>\n");//<!-- 칼라명 -->
+					sb.append("\t\t\t\t</value>\n");
+					sb.append("\t\t\t</selectedItem>\n");
+
+					// 사이즈코드
+					sb.append("\t\t\t<selectedItem>\n");
+					sb.append("\t\t\t\t<type>SELECT</type>\n");//<!-- 옵션유형 -->
+					sb.append("\t\t\t\t<name>사이즈</name>\n");//<!-- 옵션명 -->
+					sb.append("\t\t\t\t<value>\n");
+					sb.append("\t\t\t\t\t<id>").append(item.getOptCd2()).append("</id>\n");//<!-- 사이즈코드 -->
+					sb.append("\t\t\t\t\t<text>").append(item.getOptCd2()).append("</text>\n");//<!-- 사이즈명 -->
+					sb.append("\t\t\t\t</value>\n");
+					sb.append("\t\t\t</selectedItem>\n");
+					sb.append("\t\t</option>\n");
+				} else {																		// 세트상품 제외 입점업체 상품
+					// 옵션 정보
+					sb.append("\t\t<option>\n");
+					sb.append("\t\t\t<quantity>").append(item.getGoodsQty()).append("</quantity>\n");	//<!-- 옵션수량-->
+					sb.append("\t\t\t<price>").append(item.getOptAddPrice()).append("</price>\n");		//<!-- 옵션금액 -->
+					sb.append("\t\t\t<manageCode>").append(item.getOptCd()).append("</manageCode>\n");	//<!-- 옵션관리코드 -->
+
+					// 칼라코드
+					sb.append("\t\t\t<selectedItem>\n");
+					sb.append("\t\t\t\t<type>SELECT</type>\n");//<!-- 옵션유형 -->
+					sb.append("\t\t\t\t<name>옵션</name>\n");//<!-- 옵션명 -->
+					sb.append("\t\t\t\t<value>\n");
+					sb.append("\t\t\t\t\t<id>").append(item.getOptCd()).append("</id>\n");//<!-- 칼라코드 -->
+					sb.append("\t\t\t\t\t<text>").append(item.getOptCd1()).append("/").append(item.getOptCd2()).append("</text>\n");//<!-- 칼라명 -->
+					sb.append("\t\t\t\t</value>\n");
+					sb.append("\t\t\t</selectedItem>\n");
+					sb.append("\t\t</option>\n");
+				}
 
-				log.info("CHECK DELV_FEE 6 ::::: {}", item.getDelvFee());
 
 				// 배송비 판단 후 배송비유형 선택 (추가 기본배송비, 무료배송비 기준 조회후 등록)
 				//<!-- 배송정보 -->
@@ -1126,15 +1162,12 @@ public class TsfOrderService {
 					delvFee = 0;
 				}
 
-				log.info("CHECK DELV_FEE 7 ::::: {}", item.getDelvFee());
-
 				sb.append("\t\t<shippingPolicy>\n");
 				sb.append("\t\t\t<groupId>").append(item.getDelvFeeCd()).append("</groupId>\n");		//<!-- 배송비묶음그룹ID -->
 				sb.append("\t\t\t<method>DELIVERY</method>\n");											//<!-- 배송방법 : 택배,소포,등기 -->
-				sb.append("\t\t\t<feeType>").append("CONDITIONAL_FREE").append("</feeType>\n");			//<!-- 배송비유형 : 유료 -->
-				sb.append("\t\t\t<feePayType>").append("PREPAYED").append("</feePayType>\n");			//<!-- 배송비결제방법 : 선불 -->
-				//sb.append("\t\t\t<feePrice>").append(item.getDelvFee()).append("</feePrice>\n");		//<!-- 기본배송비 -->
-				 sb.append("\t\t\t<feePrice>").append(delvFee).append("</feePrice>\n");					//<!-- 기본배송비 -->
+				sb.append("\t\t\t<feeType>").append(delvFeeCrite).append("</feeType>\n");				//<!-- 배송비유형 : 유료 -->
+				sb.append("\t\t\t<feePayType>").append(feePayType).append("</feePayType>\n");			//<!-- 배송비결제방법 : 선불 -->
+				sb.append("\t\t\t<feePrice>").append(delvFee).append("</feePrice>\n");					//<!-- 기본배송비 -->
 
 				// 조건부 무료일경우에만 송부
 				if(TscConstants.DelvFeeCrite.NORMAL.value().equals(item.getDelvFeeCrite())) {
@@ -1155,16 +1188,12 @@ public class TsfOrderService {
 
 			result = sendOrderInfoToNC(sb);
 
-			log.info("CHECK state ::::: {}", result.get("state").toString());
-			log.info("CHECK orderKey ::::: {}",result.get("orderKey").toString());
-			log.info("CHECK resultNo ::::: {}", result.get("resultNo").toString());
-
 			// 네이버 페이 주문번호 저장
 			param.setNpayOrdNo(Integer.parseInt(result.get("resultNo").toString()));
 
-			log.info("CHECK NAVER PAY ORD NO ::::: {}", param.getNpayOrdNo());
-
 			// 3.주문정보 저장
+			param.setOrdNo(ordNo);
+			param.setUpdNo(custNo);
 			coreOrderDao.updateNaverPayOrderNo(param);
 			result.put("npayOrderUrl", env.getProperty("naverPay.order.url"));
 			result.put("orderkey", param.getNpayOrdNo());
@@ -1196,8 +1225,6 @@ public class TsfOrderService {
 
 		HttpsURLConnection conn = (HttpsURLConnection)_url.openConnection();
 
-		log.info("CHECK URL ::::: {}", env.getProperty("naverPay.order.api.url"));
-
 		conn.setDoInput(true);
 		conn.setDoOutput(true);
 		conn.setUseCaches(false);
@@ -1220,7 +1247,7 @@ public class TsfOrderService {
 
 		BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
 
-		String[] arr = reader.readLine().toString().split(":");
+		String[] arr = reader.readLine().split(":");
 
 		log.info("CHECK RESULT ARR ::::: {} / {} / {}", arr[0], arr[1], arr[2]);
 		if ("SUCCESS".equals(arr[0])) {
@@ -1406,52 +1433,83 @@ public class TsfOrderService {
 				// 옵션 정보
 				sb.append("\t\t<option>\n");
 
-				// 9.1 옵션 아이템정보 색상
-				sb.append("\t\t\t<optionItem>\n");
-				sb.append("\t\t\t\t<type>SELECT</type>\n");
-				sb.append("\t\t\t\t<name>색상</name>\n");
-				for(int j = 0 ; j < colorList.length ; j++) {
-					sb.append("\t\t\t\t<value>\n");
-					sb.append("\t\t\t\t\t<id>").append(colorList[j]).append("</id>\n");
-					sb.append("\t\t\t\t\t<text>").append(colorNmList[j]).append("</text>\n");
-					sb.append("\t\t\t\t</value>\n");
-				}
-				sb.append("\t\t\t</optionItem>\n");
-
-				// 9.1 옵션 아이템정보 사이즈
-				sb.append("\t\t\t<optionItem>\n");
-				sb.append("\t\t\t\t<type>SELECT</type>\n");
-				sb.append("\t\t\t\t<name>사이즈</name>\n");
-				for(int j = 0 ; j < sizeList.length ; j++) {
-					sb.append("\t\t\t\t<value>\n");
-					sb.append("\t\t\t\t\t<id>").append(sizeList[j]).append("</id>\n");
-					sb.append("\t\t\t\t\t<text>").append(sizeList[j]).append("</text>\n");
-					sb.append("\t\t\t\t</value>\n");
+				if("Y".equals(goods.getSelfGoodsYn())) {
+					// 9.1 옵션 아이템정보 색상
+					sb.append("\t\t\t<optionItem>\n");
+					sb.append("\t\t\t\t<type>SELECT</type>\n");
+					sb.append("\t\t\t\t<name>색상</name>\n");
+					for (String color : colorList) {
+						sb.append("\t\t\t\t<value>\n");
+						sb.append("\t\t\t\t\t<id>").append(color).append("</id>\n");
+						sb.append("\t\t\t\t\t<text>").append(color).append("</text>\n");
+						sb.append("\t\t\t\t</value>\n");
+					}
+					sb.append("\t\t\t</optionItem>\n");
+
+					// 9.1 옵션 아이템정보 사이즈
+					sb.append("\t\t\t<optionItem>\n");
+					sb.append("\t\t\t\t<type>SELECT</type>\n");
+					sb.append("\t\t\t\t<name>사이즈</name>\n");
+					for (String size : sizeList) {
+						sb.append("\t\t\t\t<value>\n");
+						sb.append("\t\t\t\t\t<id>").append(size).append("</id>\n");
+						sb.append("\t\t\t\t\t<text>").append(size).append("</text>\n");
+						sb.append("\t\t\t\t</value>\n");
+					}
+					sb.append("\t\t\t</optionItem>\n");
+
+					// 9.3 옵션 옵션조합정보
+					for(GoodsStock optInfo : optList) {
+						sb.append("\t\t\t<combination>\n");
+						sb.append("\t\t\t\t<manageCode>").append(optInfo.getOptCd()).append("</manageCode>\n");
+						sb.append("\t\t\t\t<price>").append(optInfo.getAddPrice()).append("</price>\n");
+						sb.append("\t\t\t\t<stockQuantity>").append(optInfo.getStockQty()).append("</stockQuantity>\n");
+						sb.append("\t\t\t\t<status>true</status>\n");
+
+						// 9.3.1  옵션 옵션조합정보 색상
+						sb.append("\t\t\t\t<options>\n");
+						sb.append("\t\t\t\t\t<name>색상</name>\n");
+						sb.append("\t\t\t\t\t<id>").append(optInfo.getOptCd1()).append("</id>\n");
+						sb.append("\t\t\t\t</options>\n");
+
+						// 9.3.2  옵션 옵션조합정보 사이즈
+						sb.append("\t\t\t\t<options>\n");
+						sb.append("\t\t\t\t\t<name>사이즈</name>\n");
+						sb.append("\t\t\t\t\t<id>").append(optInfo.getOptCd2()).append("</id>\n");
+						sb.append("\t\t\t\t</options>\n");
+
+						sb.append("\t\t\t</combination>\n");
+					}
+				} else {
+					// 9.1 옵션 아이템정보 색상
+					sb.append("\t\t\t<optionItem>\n");
+					sb.append("\t\t\t\t<type>SELECT</type>\n");
+					sb.append("\t\t\t\t<name>옵션</name>\n");
+					for(GoodsStock optInfo : optList) {
+						sb.append("\t\t\t\t<value>\n");
+						sb.append("\t\t\t\t\t<id>").append(optInfo.getOptCd()).append("</id>\n");
+						sb.append("\t\t\t\t\t<text>").append(optInfo.getOptCd1()).append("/").append(optInfo.getOptCd2()).append("</text>\n");
+						sb.append("\t\t\t\t</value>\n");
+					}
+					sb.append("\t\t\t</optionItem>\n");
+
+					// 9.3 옵션 옵션조합정보
+					for(GoodsStock optInfo : optList) {
+						sb.append("\t\t\t<combination>\n");
+						sb.append("\t\t\t\t<manageCode>").append(optInfo.getOptCd()).append("</manageCode>\n");
+						sb.append("\t\t\t\t<price>").append(optInfo.getAddPrice()).append("</price>\n");
+						sb.append("\t\t\t\t<stockQuantity>").append(optInfo.getStockQty()).append("</stockQuantity>\n");
+						sb.append("\t\t\t\t<status>true</status>\n");
+
+						// 9.3.1  옵션 옵션조합정보 색상
+						sb.append("\t\t\t\t<options>\n");
+						sb.append("\t\t\t\t\t<name>옵션</name>\n");
+						sb.append("\t\t\t\t\t<id>").append(optInfo.getOptCd()).append("</id>\n");
+						sb.append("\t\t\t\t</options>\n");
+						sb.append("\t\t\t</combination>\n");
+					}
 				}
-				sb.append("\t\t\t</optionItem>\n");
 
-				// 9.3 옵션 옵션조합정보
-				for(GoodsStock optInfo : optList) {
-					sb.append("\t\t\t<combination>\n");
-					sb.append("\t\t\t\t<manageCode>").append(optInfo.getOptCd()).append("</manageCode>\n");
-					sb.append("\t\t\t\t<price>").append(optInfo.getAddPrice()).append("</price>\n");
-					sb.append("\t\t\t\t<stockQuantity>").append(optInfo.getStockQty()).append("</stockQuantity>\n");
-					sb.append("\t\t\t\t<status>true</status>\n");
-
-					// 9.3.1  옵션 옵션조합정보 색상
-					sb.append("\t\t\t\t<options>\n");
-					sb.append("\t\t\t\t\t<name>색상</name>\n");
-					sb.append("\t\t\t\t\t<id>").append(optInfo.getOptCd1()).append("</id>\n");
-					sb.append("\t\t\t\t</options>\n");
-
-					// 9.3.2  옵션 옵션조합정보 사이즈
-					sb.append("\t\t\t\t<options>\n");
-					sb.append("\t\t\t\t\t<name>사이즈</name>\n");
-					sb.append("\t\t\t\t\t<id>").append(optInfo.getOptCd2()).append("</id>\n");
-					sb.append("\t\t\t\t</options>\n");
-
-					sb.append("\t\t\t</combination>\n");
-				}
 				sb.append("\t\t</option>\n");
 
 				// 10. 배송정보조회

+ 3 - 1
src/main/java/com/style24/front/biz/service/TsfReviewService.java

@@ -177,10 +177,13 @@ public class TsfReviewService {
 		review.setUpdNo(TsfSession.getInfo().getCustNo());
 		if (review.getKufKeyArr() == null && review.getOrgFileNmArr() == null) {
 			review.setPntGiveStat("G043_30");
+			review.setReviewGb("R");
 		}else if(review.getKufKeyArr() == null && review.getOrgFileNmArr() != null) {
 			review.setPntGiveStat("G043_30");
+			review.setReviewGb("P");
 		}else {
 			review.setPntGiveStat("G043_10");
+			review.setReviewGb("P");
 		}
 		
 		reviewDao.saveMypageReview(review);
@@ -259,7 +262,6 @@ public class TsfReviewService {
 				point.setReviewSq(review.getReviewSq());
 				reviewDao.createReviewPointHst(point);
 			}else if(review.getKufKeyArr() == null && review.getOrgFileNmArr() != null) {
-				
 				// 상품평 + 사진
 				point.setCustNo(TsfSession.getInfo().getCustNo());
 				point.setGvPntAmt(photoReviewPnt);

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

@@ -169,7 +169,6 @@ public class TsfCartController extends TsfBaseController {
 
 	@PostMapping("/tmtb/sales/goods/list")
 	public ModelAndView selectTmtbSalesGoodsList(@RequestBody Goods param) {
-		log.info("CHECK PARAM :::: {}", param.getArrTmtbSq()[0]);
 		ModelAndView mav = new ModelAndView();
 		param.setFrontGb(TsfSession.getFrontGb());
 		param.setSiteCd(TscConstants.Site.STYLE24.value());
@@ -428,8 +427,6 @@ public class TsfCartController extends TsfBaseController {
 			result = goods;		// goodsList는 상품정보 1라인만 조회됨
 		}
 
-		log.info("CHECK MY RESULT ::::: {} / {} / {}", goodsList.size(), result.getGoodsCd(), result.getOptCd());
-
 		return result;
 	}
 }

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

@@ -570,6 +570,7 @@ public class TsfPlanningController extends TsfBaseController {
 		ModelAndView mav = new ModelAndView();
 		Integer planSq = planningService.getShotPlanSq(plan);
 		plan.setPlanSq(planSq);
+		plan.setPlanGb(planGb);
 		
 		CustDeliveryAddr addr = new CustDeliveryAddr();
 		Integer custNo = null;

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

@@ -2246,7 +2246,7 @@
 				  </otherwise>
 			  </choose>
 			  <if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
-				LIMIT #{pageable.startRow} , 30
+				LIMIT #{pageable.limitStartRow} , #{pageable.pageSize}
 			  </if>
 		)
 		SELECT G.BRAND_GROUP_NM

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

@@ -1041,6 +1041,9 @@
 		            AND    P.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
 		            </if>
 		            AND    NOW() BETWEEN P.DISP_STDT AND P.DISP_EDDT /*현재 전시되는 기획전*/
+		            <if test='planGb == "S"'>
+		            AND    G.GOODS_CD NOT IN (SELECT GOODS_CD FROM TB_GOODS_SHOT_DELV_SKIP GSDS)
+		            </if>
 		            AND    P.DEL_YN = 'N' /*삭제안된 기획전*/
 		            AND    P.OPEN_YN = 'Y' /*오픈된 기획전*/
 		            AND    NOW() BETWEEN PD.DISP_STDT AND PD.DISP_EDDT /*현재 전시되는 코너*/

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

@@ -480,13 +480,14 @@
 				LEFT OUTER JOIN TB_COLOR C ON ODI.OPT_CD1 = C.COLOR_CD
 		                                   AND C.USE_YN = 'Y'
 				  WHERE 1=1
-				AND O.PAY_DT >  DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL #{reviewExpireDay} DAY), '%Y%M%D%H%I%S') 
+				-- AND O.PAY_DT >  DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL #{reviewExpireDay} DAY), '%Y%M%D%H%I%S') 
 				-- AND O.ORD_NO NOT IN (SELECT R.ORD_NO FROM TB_REVIEW R WHERE R.DEL_YN = 'N' AND DISP_YN = 'Y')
 				AND OD.ORD_DTL_NO NOT IN (SELECT R.ORD_DTL_NO FROM TB_REVIEW R WHERE R.DEL_YN = 'N' AND DISP_YN = 'Y' AND R.ORD_NO = O.ORD_NO AND R.ORD_DTL_NO = OD.ORD_DTL_NO AND R.CUST_NO = #{custNo})
 				AND O.CUST_NO = #{custNo}
 				AND O.DISP_YN = 'Y'
 			 	AND O.SITE_CD = #{siteCd}
 				) Z
+		 WHERE Z.REMAIN_DT > 0
 		 GROUP BY Z.ORD_NO, Z.ORD_DT, Z.DELV_EDDT, Z.ORD_DTL_NO, Z.ORD_EXCH_GB
 				, Z.GOODS_CD, Z.GOODS_NM, Z.LIST_PRICE, Z.SYS_IMG_NM, Z.ORD_DTL_STAT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.ORD_AMT, Z.REAL_ORD_AMT
 				, Z.SAVE_PNT_AMT, Z.CNCL_RTN_AMT, Z.PNT_DC_AMT, Z.GFCD_USE_AMT, Z.INVOICE_NO
@@ -786,6 +787,7 @@
 		INSERT INTO TB_REVIEW (
 		                         REVIEW_SQ
 		                       , GOODS_CD
+		                       , REVIEW_GB
 		                       , CUST_NO
 		                       , ORD_NO
 		                       , ORD_DTL_NO
@@ -811,6 +813,7 @@
 		               VALUES (
 		                          #{reviewSq}
 		                        , #{goodsCd}
+		                        , #{reviewGb}
 		                        , #{custNo}
 		                        , #{ordNo}
 		                        , #{ordDtlNo}
@@ -865,10 +868,12 @@
 		<if test='confirmYn == "Y"'>
 		SET CONFIRM_DT = NOW()
 		   ,CONFIRM_YN = 'Y'
+		   ,REVIEW_GB = #{reviewGb}
 		   </if>
 		   <if test='confirmYn == "N"'>
 		 SET CONFIRM_DT = NULL
 		    ,CONFIRM_YN = 'N'
+		    ,REVIEW_GB = #{reviewGb}
 		   </if>
 		WHERE REVIEW_SQ  = #{reviewSq}
 	</update>

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

@@ -116,10 +116,10 @@
 	$(document).ready(function() {
 		$.getJSON('/cart/goods/not/soldout/cnt', function (order, status) {
 			let cartCnt;
-			if (order.totCartCnt > 99) {
+			if (order.cartGoodsList.length > 99) {
 				cartCnt = "99+";
 			} else {
-				cartCnt = order.totCartCnt;
+				cartCnt = order.cartGoodsList.length;
 			}
 
 			$("header #htopSub .button_wrap .store>span").text(cartCnt);

+ 9 - 7
src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html

@@ -299,15 +299,17 @@ var fnOpenDaumAddr = function() {
 						success 	: function(result) {
 							if (result != null) {
 								$('#addr').text(cfnGetDaumRoadAddr(data));
-								if(result.shotYn.shotDelvUseYn == "Y"){
-									$("#classPop").attr("class","possible-popup");
-									$('#shotAdr').text("총알배송");
-									$("#infoTxt").html("오늘 오전 10시까지 주문하시면 오늘 도착합니다. <br>(토, 일, 공휴일 휴무)")
-									
-								}else{
+								if (result.shotYn != null && result.shortYn != '') {
+									if(result.shotYn.shotDelvUseYn == "Y"){
+										$("#classPop").attr("class","possible-popup");
+										$('#shotAdr').text("총알배송");
+										$("#infoTxt").html("오늘 오전 10시까지 주문하시면 오늘 도착합니다. <br>(토, 일, 공휴일 휴무)");
+									}
+								}
+								else{
 									$("#classPop").attr("class","impossible-popup");
 									$('#shotAdr').text("일반배송");
-									$("#infoTxt").html("주문시간/배송지에 따라 2~3일 이내 도착합니다.<br> (일, 공휴일 휴무)")
+									$("#infoTxt").html("주문시간/배송지에 따라 2~3일 이내 도착합니다.<br> (일, 공휴일 휴무)");
 								}
 								
 								$("#bulletShipPop").modal("show");

+ 4 - 4
src/main/webapp/WEB-INF/views/web/cart/CartDelvFeeSaveGoodsPopupWeb.html

@@ -8,7 +8,7 @@
 			<div class="modal-body">
 				<div class="pop_cont">
 					<div class="area_slider">
-						<div class="swiper-container swiper-container-initialized swiper-container-horizontal">
+						<div class="swiper-container swiper-container-initialized swiper-container-horizontal swiper-delv-container">
 							<div class="swiper-wrapper" style="transform: translate3d(0px, 0px, 0px);">
 								<div th:each="goods, status : ${goodsList}" class="swiper-slide swiper-slide-active" style="width: 150px; margin-right: 20px;">
 									<div class="item_prod">
@@ -33,7 +33,7 @@
 								</div>
 							</div>
 							<!-- Add Scrollbar -->
-							<!--<div class="swiper-scrollbar"></div>-->
+							<div class="swiper-scrollbar" th:if="${goodsList.size() > 5}" style="opacity: 0; transition-duration: 400ms;"><div class="swiper-scrollbar-drag" style="width: 514.104px; transform: translate3d(0px, 0px, 0px);"></div></div>
 							<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
 						</div>
 					</div>
@@ -43,13 +43,13 @@
 
 			<script>
 				//팝업 - 배송비 SAVE 상품보기 > 슬라이드
-				var dlvrSaveSwiper = new Swiper('.dlvrSave_pop .swiper-container', {
+				var dlvrSaveSwiper = new Swiper('#dlvrSavePop .swiper-delv-container', {
 					observer:true,
 					observeParents: true,
 					slidesPerView: 5,
 					spaceBetween: 20,
 					scrollbar: {
-						el: '.dlvr_save_pop .swiper-scrollbar',
+						el: '#dlvrSavePop .swiper-scrollbar',
 						hide: true,
 					},
 				});

+ 6 - 6
src/main/webapp/WEB-INF/views/web/cart/CartTmtbSalesGoodsPopupWeb.html

@@ -15,9 +15,8 @@
 				</div>
 				<!-- -->
 				<div class="area_slider">
-					<div class="swiper-container swiper-container-initialized swiper-container-horizontal">
+					<div class="swiper-container swiper-container-initialized swiper-container-horizontal swiper-tmtb-container">
 						<div class="swiper-wrapper" style="transform: translate3d(0px, 0px, 0px);">
-
 							<div th:each="goods, status : ${goodsList}" class="swiper-slide swiper-slide-active" style="width: 150px; margin-right: 20px;">
 								<div class="item_prod">
 									<div class="item_state">
@@ -41,8 +40,9 @@
 							</div>
 						</div>
 						<!-- Add Scrollbar -->
-						<!--<div class="swiper-scrollbar" style="opacity: 0; transition-duration: 400ms;"><div class="swiper-scrollbar-drag" style="width: 514.104px; transform: translate3d(0px, 0px, 0px);"></div></div>-->
-						<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span></div>
+						<div class="swiper-scrollbar" th:if="${goodsList.size() > 5}" style="opacity: 0; transition-duration: 400ms;"><div class="swiper-scrollbar-drag" style="width: 514.104px; transform: translate3d(0px, 0px, 0px);"></div></div>
+						<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
+					</div>
 				</div>
 				<!-- -->
 			</div>
@@ -50,13 +50,13 @@
 
 		<script>
 			//팝업 - 다다익선 상품보기 > 슬라이드
-			var moreSaleSwiper = new Swiper('.moresale_pop .swiper-container', {
+			var moreSaleSwiper = new Swiper('#moresalePop .swiper-tmtb-container', {
 				observer:true,
 				observeParents: true,
 				slidesPerView: 5,
 				spaceBetween: 20,
 				scrollbar: {
-					el: '.tmtbSalesPopup .swiper-scrollbar',
+					el: '#moresalePop .swiper-scrollbar',
 					hide: true,
 				},
 			});

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

@@ -1042,15 +1042,11 @@
 	// 장바구니
 	let fnGetCartGoodsList = function() {
 		$.getJSON('/cart/quick/cart/list', function(order, status) {
-			let cartCnt;
-			if(order.totCartCnt > 99) {cartCnt = "99+";} else {cartCnt = order.totCartCnt;}
 			$("#quick_menu .shopingbag.quick_con.quick02 .quick_head a").attr("href", _PAGE_CART);
 			$("#header .gnb .btn_cart").attr("href", _PAGE_CART);
-			$("#header .gnb .btn_cart .circle_count").text(cartCnt);
 
 			if (status == 'success') {
 				let quickShoppingBagHtml = "";
-				$("#quick_menu #quick02 .count").text(cartCnt);
 
 				$("#quick_menu .shopingbag.quick_con.quick02 .quick_body").html("");
 				if(order.totCartCnt > 0) {
@@ -1061,8 +1057,9 @@
 					let ordCanCnt = 0;
 					for(let i = 0 ; i < order.delvAllCartList.length ; i++) {
 						let info = order.delvAllCartList[i];
-						//alert(info.soldoutYn + " / " + info.ordCanYn + " / " + info.ordCanQty + " / " + info.goodsQty + " / " + info.minOrdQty + " / " + info.maxOrdQty);
-						if(info.soldoutYn == "N" && info.ordCanYn == "Y" && info.ordCanQty >= info.goodsQty && info.goodsQty >= info.minOrdQty && info.goodsQty <= info.maxOrdQty){
+
+						// 구매하기 버튼에서 장바구니 버튼으로 변경 후 품절 상품 보여주지 말것 이라는 멘트 사라짐. 전체 노출
+						//if(info.soldoutYn == "N" && info.ordCanYn == "Y" && info.ordCanQty >= info.goodsQty && info.goodsQty >= info.minOrdQty && info.goodsQty <= info.maxOrdQty){
 							ordCanCnt++;		// 주문 가능 수량
 							quickShoppingBagHtml += '	<div class="item_prod">';
 							quickShoppingBagHtml += '		<input type="hidden" id="cartSq" value="' + info.cartSq + '">';
@@ -1110,11 +1107,13 @@
 							quickShoppingBagHtml += '			</a>';
 							quickShoppingBagHtml += '		</div>';
 							quickShoppingBagHtml += '	</div>';
-						}
+						//}
 					}
 
 					quickShoppingBagHtml += '</div>';
 					quickShoppingBagHtml += '<button type="button" class="btn btn_default purchase_btn" onclick="cfnGoToPage(_PAGE_CART);"><span>쇼핑백 바로가기</span></button>';
+
+					$("#quick_menu #quick02 .count").text(ordCanCnt);
 				} else {
 					if(!$("#quick_menu .shopingbag.quick_con.quick02 .quick_body").hasClass("nodata")) {
 						$("#quick_menu .shopingbag.quick_con.quick02 .quick_body").addClass("nodata");
@@ -1144,6 +1143,12 @@
 				}
 
 				$("#quick_menu .shopingbag.quick_con.quick02 .quick_body").html(quickShoppingBagHtml);
+
+				let cartCnt = $("#quick_menu #quick02 .count").text();
+				if(!cartCnt) cartCnt = 0;
+				if(cartCnt > 99) cartCnt = "99+";
+				$(".shopingbag .quick_body .product_count .c_primary").text(cartCnt);
+				$("#header .gnb .btn_cart .circle_count").text(cartCnt);
 			}
 		});
 	}
@@ -1192,7 +1197,6 @@
 								tag += '				</div>';	
 								tag += '			</a>';	
 								tag += '			<div class="hover_con">';
-								console.log(item.stockQtySum);
 								if (item.stockQtySum>0) {
 									tag += '			<button type="button" class="btn btn_sm cart_btn on" afLinkCd="'+item.afLinkCd+'" goodsCd="'+item.goodsCd+'" optCd="'+item.optCd+'" minOrdQty="'+item.minOrdQty+'" goodsType="'+item.goodsType+'" contentsLoc="'+item.contentLoc+'" onclick="wishCardAdd(this)"><span>쇼핑백 담기</span></button>';
 								}

+ 28 - 31
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -393,23 +393,26 @@
 											let goodsType = "[[${goodsInfo.goodsType}]]";
 											let selfGoodsYn = "[[${goodsInfo.selfGoodsYn}]]";
 
+											if (!goodsCd) {
+												mcxDialog.alert("상품정보가 존재하지 않습니다. 새로고침 후 다시 시도해주세요.");
+												return false;
+											}
+
+											if (!goodsQty || goodsQty < 1) {
+												mcxDialog.alert("구매 수량을 확인해주세요.");      /*수량*/
+												return false;
+											}
+
 											if(goodsType == "G056_N") {
 												// 자사 상품이 아닐 경우
 												if(selfGoodsYn == "N") {
 													optCd = $(".item_opt2 .select input[name=opt2]").attr("optcd");				// 입점업체 일반 상품
 												}
-												if (!goodsCd) {
-													mcxDialog.alert("상품정보가 존재하지 않습니다. 새로고침 후 다시 시도해주세요.");
-													return false;
-												}
+
 												if (!optCd) {
 													mcxDialog.alert("상품 옵션을 확인 할 수 없습니다. 새로고침 후 다시 시도해주세요.");   /*옵션*/
 													return false;
 												}
-												if (!goodsQty || goodsQty < 1) {
-													mcxDialog.alert("구매 수량을 확인해주세요.");      /*수량*/
-													return false;
-												}
 
 												let compsList = [];
 												let obj = new Object();
@@ -429,33 +432,27 @@
 											} else {
 												// TODO 세트상품 추가 예정
 												alert("개발 중");
-											}
+												let itemCds = [];
+												let optCds = [];
+												$("#cartForm .area_desc .option_box .opt_set_select .item_opt2 .list>li").each(function() {
+													if($(this).hasClass("selected")) {
+														itemCds.push($(this).find("input[name=opt2]").attr("goodscd"));
+														optCds.push($(this).find("input[name=opt2]").attr("optcd"));
+													}
+												});
 
-											/*$.ajax( {
-												type        : "POST",
-												url         : "/pg/nPayReq",
-												dataType    : 'json',
-												contentType : 'application/json',
-												data        : JSON.stringify(param),
-												async       : false,
-												error: function(xhr, status, error) {
-													alert("!!  " + status + '; ' + error);
-												},
-												success : function(result) {
-													if (result.state == "sucess") {
-														window.open('about:blank', 'popupView');
-														document.nPayForm.target = 'popupView';
-														document.nPayForm.action = "$!{NPAY_ORDER_URL}" + result.orderKey + "/" + result.resultNo;
-														document.nPayForm.submit();
-													} else {
-														alert(result.message);
+												for(let i = 0 ; i < itemCds.length ; i++) {
+													if (!itemCds[i]) {
+														mcxDialog.alert("구성 상품정보가 존재하지 않습니다. 새로고침 후 다시 시도해주세요.");
+														return false;
+													}
+													if (!optCds[i]) {
+														mcxDialog.alert("구성 상품 옵션을 확인 할 수 없습니다. 새로고침 후 다시 시도해주세요.");   /*옵션*/
+														return false;
 													}
 												}
-											});*/
+											}
 
-											//해당 페이지에서 주문 정보 등록 후 네이버페이 주문서 페이지로 이동.
-											//네이버페이로 주문 정보를 등록하는 가맹점 페이지로 이동.
-											//해당 페이지에서 주문 정보 등록 후 네이버페이 주문서 페이지로 이동.
 											return false;
 										}
 

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

@@ -598,15 +598,17 @@ var fnChooseFile = function(obj) {
 				); 
 		}else if((new RegExp("mp4", "i")).test(file.name)){
 			setTimeout(function(){
+				$(".imgUpload").find('.pics').eq(0).addClass("mov");
 				$(".pics").children().eq(0).append("<input type='hidden' name='kufKeyArr' id='kufKey"+(picLength+1)+"'>");
 				$(".pics").children().eq(0).append("<input type='hidden' name='kmcKeyArr' id='kmcKey"+(picLength+1)+"'>");
 				gagaKollus.upload('Review', file, $('#kufKey'+(picLength+1)));
-			}, 2000);
+			}, 200);
 		}else{
 			mcxDialog.alertC('첨부할 수 없는 파일 형식입니다.', {
 				sureBtnText: "확인",
 				sureBtnClick: function() {
-					$(obj).parent('.imgUpload').find('.removes').trigger('click');
+					//$(obj).parent('.imgUpload').find('.removes').trigger('click');
+					$(".pics").find(".removes").eq(0).trigger('click');
 				}
 			});
 			return false;

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

@@ -319,7 +319,7 @@
 						html+='										<a>';
 						html+='											<div class="pic">';
 						if (attachList[i].fileGb == 'M') {
-							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\');" class="thumb mov" style="background-image:url(' + _kollusMediaUrl + '/' + attachList[i].kmcKey + '?player_version=html5);"></span>';
+							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\');" class="thumb mov" style="background-image:url(' + _kollusMediaUrl + '/poster/' + attachList[i].kmcKey + '?player_version=html5);"></span>';
 						}else{
 							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\');" class="thumb" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
 						}

+ 8 - 7
src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html

@@ -306,15 +306,16 @@ var fnOpenDaumAddr = function() {
 						success 	: function(result) {
 							if (result != null) {
 								$('#addr').text(cfnGetDaumRoadAddr(data));
-								if(result.shotYn.shotDelvUseYn == "Y"){
-									$('#shotAdr').text("총알배송");
-									$("#infoTxt").text("오늘 오전 10시까지 주문하시면 오늘 도착합니다. (토, 일, 공휴일 휴무)")
-									
-								}else{
+								if (result.shotYn != null && result.shortYn != '') {
+									if(result.shotYn.shotDelvUseYn == "Y"){
+										$('#shotAdr').text("총알배송");
+										$("#infoTxt").text("오늘 오전 10시까지 주문하시면 오늘 도착합니다. (토, 일, 공휴일 휴무)");
+									}
+								}
+								else{
 									$('#shotAdr').text("일반배송");
-									$("#infoTxt").text("주문시간/배송지에 따라 2~3일 이내 도착합니다. (일, 공휴일 휴무)")
+									$("#infoTxt").text("주문시간/배송지에 따라 2~3일 이내 도착합니다. (일, 공휴일 휴무)");
 								}
-								
 								$("#bulletShipPop").modal("show");
 								
 							}

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

@@ -313,7 +313,7 @@ input[type="file"] {
   display: inline !important;float: left;margin: 0 10px 0 0;width: 7.2rem;height:7.2rem;
   border: 1px solid #dddddd;box-sizing: border-box;position: relative; overflow: hidden;
 }
-.pics.mov::after {content:''; position:absolute; left:0; top:0; width:100%; height:100%; background:rgba(0,0,0,0.3) url('/images/mo/ico_play.png') no-repeat 50% 50%; z-index:2;}
+.pics.mov::after {content:''; position:absolute; left:0; top:0; width:100%; height:100%; background:rgba(0,0,0,0.3) url('/images/mo/ico_play.png') no-repeat 50% 50%; z-index:0;}
 .picsThumbs {
   width: auto;height: auto;max-height: 7.1rem;max-width:7.1rem;margin: auto 0;
   position: absolute;top: 50%;bottom: auto;left: 50%;right: 0;
@@ -321,7 +321,7 @@ input[type="file"] {
 }
 .removes {
   display: block;width:2rem;height:2rem;font-size: 0;text-align: center;cursor: pointer;background-color: #666666;
-  position: absolute;top: 0;bottom: auto;left: auto;right: 0; z-index: 3;
+  position: absolute;top: 0;bottom: auto;left: auto;right: 0; z-index: 1;
 }
 .removes::after {
   content: '';display: inline-block;width: 2rem;height: 2rem;
@@ -657,8 +657,8 @@ body.gnb_on {height: 100vh;overflow: hidden;}
 .app {height: 100vh;font-size: 1.4rem;}
 .skipNav {overflow: hidden;position: absolute;left: -9999px;width: 0;height: 1px;margin: 0;padding: 0;}
 
-.inner {padding: 0 2.0rem 1.3rem 2.0rem;position: relative;overflow: hidden;}
-.inner.wide {padding: 0 0rem 1.3rem 0rem;position: relative;overflow: hidden;}
+.inner {padding: 0 2.0rem 1.3rem 2.0rem;position: relative;}
+.inner.wide {padding: 0 0rem 1.3rem 0rem;position: relative;}
 .inner::after {content: '';display: block;clear: both;}
 .inner.bg_gray {background-color: #f5f5f5;}
 .inner.bg_beige {background-color: #ffeee7;}

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

@@ -161,7 +161,7 @@ $(document).ready(function() {
                         var file = e.target;
                         console.log(file);
                         $("<span class=\"pics\">" +
-                            "<img class=\"picsThumbs\" src=\"" + e.target.result + "\" title=\"" + file.name + "\"/>" +
+                            "<img class=\"picsThumbs\" src=\"" + e.target.result + "\"/>" +
                             "<br/><span class=\"removes\">Removes image</span>" +
                             "</span>").insertBefore(".fileAdd");
                         $(".removes").click(function(){
@@ -209,7 +209,7 @@ $(document).ready(function() {
                     fileReader.onload = (function(e) {
                         var file = e.target;
                         $("<span class=\"pics\">" +
-                            "<img class=\"picsThumbs\" src=\"" + e.target.result + "\" title=\"" + file.name + "\"/>" +
+                            "<img class=\"picsThumbs\" src=\"" + e.target.result + "\"/>" +
                             "<br/><span class=\"removes\">Removes image</span>" +
                             "</span>").insertBefore(".fileAdd");
                         $(".removes").click(function(){

+ 6 - 3
src/main/webapp/ux/pc/css/common.css

@@ -459,10 +459,9 @@ background-color: #fe970a;border-color: #fe970a;color:#ffffff;
 /* btn linktext */
 a[class*="link"]::after, .btn_link span::after {
 content: "〉";font-size: 12px;padding-left: 8px;
-/* 아이콘 이미지 넣을것 , content 제거 */
   /* background:url(/images/pc/icon/ico_arrow.gif) no-repeat right 3px; */
 }
-.pd a[class*="link"]::after, .pd .btn_link span::after {content: "";}
+.npay_button a[class*="link"]::after, .npay_button .btn_link span::after {content: "";}
 .btn_link, .btn_link:hover, .btn_link:focus, .btn_link:active {border-color: transparent;}
 .btn_link:hover, .btn_link:focus {color: #2a6496;text-decoration:none;background-color: transparent;}
 .btn_link:hover, .btn_link:focus, .btn_link:active, .btn_link.active {color: #222222;background-color: transparent;border-color: transparent;}
@@ -1045,6 +1044,10 @@ input[type="file"] {
   display: inline !important;float: left;margin: 0 10px 0 0;width: 150px;height:150px;
   border: 1px solid #dddddd;box-sizing: border-box;position: relative;
 }
+
+.pics.mov {position: relative;}
+.pics.mov::after {content:''; position:absolute; left:0; top:0; width:100%; height:100%; background:rgba(0,0,0,0.3) url('/images/pc/ico_play.png') no-repeat 50% 50%; z-index:1;}
+
 .picsThumbs {
   width: auto;height: auto;max-height: 148px;max-width: 148px;margin: auto 0;
   position: absolute;top: 50%;bottom: auto;left: 50%;right: 0;
@@ -1052,7 +1055,7 @@ input[type="file"] {
 }
 .removes {
   display: block;width: 21px;height: 21px;font-size: 0;text-align: center;cursor: pointer;background-color: #666666;
-  position: absolute;top: 0;bottom: auto;left: auto;right: 0;
+  position: absolute;top: 0;bottom: auto;left: auto;right: 0; z-index: 2;
 }
 .removes::after {
   content: '';display: inline-block;width: 21px;height: 21px;

+ 11 - 3
src/main/webapp/ux/pc/css/layout.css

@@ -2342,11 +2342,12 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.odPayment .fold_cont .area_receiveinfo.none {padding:0 0 30px;}
 	.odPayment .fold_cont .area_receiveinfo > dl > div {margin-top:15px; min-height:16px}
 	.odPayment .fold_cont .area_receiveinfo > dl > div:first-child {margin-top:0}
-	.odPayment .fold_cont .area_receiveinfo > dl > div:last-child {margin-top: 5px;}
+	.odPayment .fold_cont .area_receiveinfo > dl > div:last-child {margin-top: 10px;}
+	.odPayment .fold_cont .area_receiveinfo > dl > div:nth-child(3) {line-height: 1.4;}
 	.odPayment .fold_cont .area_receiveinfo > dl > div dt {position:relative; padding-right:10px; margin-right:10px; font-weight:200;}
 	.odPayment .fold_cont .area_receiveinfo > dl > div:last-child dt::after {content:':'; position:absolute; right:-2px; top:-1px;}
 	.odPayment .fold_cont .area_receiveinfo > dl > div dd {min-height:16px}
-	.odPayment .fold_cont .area_receiveinfo > dl > div dd .btn {vertical-align:top; margin-top:-9px; margin-left:15px}
+	.odPayment .fold_cont .area_receiveinfo > dl > div dd .btn {margin-left:15px}
 	.odPayment .fold_cont .area_receiveinfo > dl > div dd .btn_underline {margin-left:12px}
 	.odPayment .fold_cont .area_receiveinfo .icon_tag {margin-top:-3px; margin-left:4px}
 
@@ -4402,7 +4403,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 
 
 
-	/* 이용약관,개인정보취급방침 */
+	/* 이용약관,개인정보취급방침,업체리스트 */
 	.ps .cont_head > div h3{text-align: center;margin-bottom: 0;padding-bottom: 60px;font-size: 40px;line-height: 1;}
 	.ps .cont_body {width: 1200px;margin: 0 auto;}
 	.ps p {font-size:16px;color:#666666;line-height:26px;letter-spacing:-0.025em;}
@@ -4413,6 +4414,13 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.ps table td {border-bottom:1px solid #ddd;border-right: 1px solid #ddd;font-weight:200;}
 	.ps table td:last-child {border-right: 1px solid transparent;}
 	.ps table th {border-top: 1px solid #000;border-bottom:1px solid #000;border-right: 1px solid transparent;font-weight:500;text-align:center;}
+	.modal.psptn_pop {max-width: none;width: 620px;padding: 60px 60px;}
+	.ps.ptn {border: 0;}
+	.ps.ptn table {margin-top:0;}
+	.ps.ptn table th, .ps.ptn table td {text-align: center;padding: 16px 0;}
+	.ps.ptn table th {font-size: 14px; font-weight: 500; line-height:14px;border-bottom: 1px solid #ddd;}
+	.ps.ptn table td {font-size: 14px; font-weight: 200; line-height: 14px;border-right: 0px solid #ddd;}
+	.ps.ptn .pager {padding-top: 20px;}
 	.hookGrp{margin-top: 40px;}
 	.hookGrp .hook_list{border: 1px solid #f5f5f5;padding: 40px;}
 	.hookGrp .hook_list ul{}

+ 11 - 3
src/main/webapp/ux/pc/js/common-ui.js

@@ -91,7 +91,7 @@ $(document).ready(function() {
 					var file = e.target;
 					console.log(file);
 					$("<span class=\"pics\">" +
-						"<img class=\"picsThumbs\" src=\"" + e.target.result + "\" title=\"" + file.name + "\"/>" +
+						"<img class=\"picsThumbs\" src=\"" + e.target.result + "\"/>" +
 						"<br/><span class=\"removes\">Removes image</span>" +
 						"</span>").insertAfter("#fileAdd");
 					$(".removes").click(function(){
@@ -688,8 +688,16 @@ $(document).ready( function() {
 				sureBtnText: "확인",
 			});
 		}else {
-			$(this).parents('.foldGroup li').find('.fold_cont').slideToggle(100);
-			$(this).toggleClass('on');
+			$('.fold_head').removeClass('on');
+            $('.fold_cont').slideUp(100);
+            //$(this).parents('.foldGroup li').find('.fold_cont').slideToggle(100);
+            //$(this).parents('.fold_head').toggleClass('on');
+            if(!$(this).parents('.foldGroup li').find('.fold_cont').is(":visible")){
+                $(this).parents('.foldGroup li').find('.fold_cont').slideDown(100);
+                $(this).toggleClass('on');
+            }
+			//$(this).parents('.foldGroup li').find('.fold_cont').slideToggle(100);
+			//$(this).toggleClass('on');
 		}
 	});
 	

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

@@ -291,12 +291,12 @@ function cfnAddCart(cartList) {
 								// 장바구니 수량 조회
 								$.getJSON('/cart/goods/not/soldout/cnt', function (order, status) {
 									let cartCnt;
-									if (order.totCartCnt > 99) {
+									if (order.cartGoodsList.length > 99) {
 										cartCnt = "99+";
 									} else {
-										cartCnt = order.totCartCnt;
+										cartCnt = order.cartGoodsList.length;
 									}
-									
+
 									$("header #htopSub .button_wrap .store>span").text(cartCnt);
 								});
 							}