فهرست منبع

Merge branch 'develop' into bin2107

bin2107 4 سال پیش
والد
کامیت
a970b81878

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

@@ -475,10 +475,11 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 교환 옵션 정보 조회
 		Collection<OrderChange> exchangeOptionInfo = orderChangeService.getExchangeOptionInfo(orderChange);
-		mav.addObject("exchangeOptionInfo", exchangeOptionInfo);
-		mav.addObject("oneData", exchangeOptionInfo.iterator().next());
-		mav.addObject("ordDtlNo", orderChange.getOrdDtlNo());
-		mav.addObject("chgQty", orderChange.getChgQty());
+		mav.addObject("exchangeOptionInfo"	, exchangeOptionInfo);
+		mav.addObject("oneData"				, exchangeOptionInfo.iterator().next());
+		mav.addObject("ordDtlNo"			, orderChange.getOrdDtlNo());
+		mav.addObject("chgQty"				, orderChange.getChgQty());
+		mav.addObject("title"				, "교환 옵션 변경");
 
 		mav.setViewName(super.getDeviceViewName("mypage/ChangeOptionPopupForm"));
 

+ 110 - 35
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.rest.server.GagaResponse;
 import com.style24.core.biz.service.TscFreegiftService;
 import com.style24.core.biz.service.TscKakaotalkService;
 import com.style24.core.biz.service.TscMailService;
@@ -26,10 +27,13 @@ import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCartService;
+import com.style24.front.biz.service.TsfCustomerService;
+import com.style24.front.biz.service.TsfOrderChangeService;
 import com.style24.front.biz.service.TsfOrderService;
 import com.style24.front.biz.thirdparty.NiceCertify;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.CustContactHst;
 import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
@@ -78,6 +82,12 @@ public class TsfOrderController extends TsfBaseController {
 	@Autowired
 	private TscMailService mailService;
 	
+	@Autowired
+	private TsfOrderChangeService orderChangeService;
+	
+	@Autowired
+	private TsfCustomerService customerService;
+	
 	/**
 	 * 회원, 비회원 주문페이지
 	 *
@@ -1040,43 +1050,52 @@ public class TsfOrderController extends TsfBaseController {
 			return mav;
 		}
 		
-		// 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);
-				
-				OrderChange orderChange = new OrderChange();
-				
-				
-				// 2021.06.15
-				// 주문완료 안내 메일 보내기
-				GagaMap replaceInfo = coreOrderChangeService.getMailOrderCancelReplaceInfo(orderChange);
-
-				// 주문완료 안내 메일 보내기
-				if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
-					// mailService.sendOrderComplete(replaceInfo, userNo);
+		// 2021.06.18 알림톡 이전 발송이력 조회
+		CustContactHst custContactHst = new CustContactHst();
+		custContactHst.setContactType(TscConstants.ContactType.ORDER_INFO.value());
+		custContactHst.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value());
+		custContactHst.setContactMemo(String.valueOf(order.getOrdNo()));
+
+		int count = customerService.getGiftKakaoSendInfo(custContactHst);
+		
+		if (count < 1) {
+			// 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);
+					
+					OrderChange orderChange = new OrderChange();
+					
+					// 2021.06.15
+					// 주문완료 안내 메일 보내기
+					GagaMap replaceInfo = coreOrderChangeService.getMailOrderCancelReplaceInfo(orderChange);
+	
+					// 주문완료 안내 메일 보내기
+					if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
+						// mailService.sendOrderComplete(replaceInfo, userNo);
+					}
+				} catch (Exception e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
 				}
-			} catch (Exception e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
 			}
-		}
-		
-		// 2021.05.31 알림톡전송 선물받기정보 (KCP 무통장입금 제외)
-		if ("Y".equals(orderInfo.getGiftPackYn())) {
-			if ("KCP".equals(orderInfo.getPgGb()) && !TscConstants.PayMeans.BANK_DEPOSIT.value().equals(orderInfo.getPayMeans())) {
-				if (StringUtils.isNotBlank(orderInfo.getRecipPhnno())) {
-					Integer userNo = orderInfo.getCustNo();
-					try {
-						orderInfo.setGoodsNm((String) resultMap.get("goodsNm"));
-						orderInfo.setGoodsCnt(String.valueOf(resultMap.get("goodsCnt")));
-						kakaotalkService.sendOrderGiftComplete(orderInfo, userNo);
-					} catch (Exception e) {
-						// TODO Auto-generated catch block
-						e.printStackTrace();
+			
+			// 2021.05.31 알림톡전송 선물받기정보 (KCP 무통장입금 제외)
+			if ("Y".equals(orderInfo.getGiftPackYn())) {
+				if ("KCP".equals(orderInfo.getPgGb()) && !TscConstants.PayMeans.BANK_DEPOSIT.value().equals(orderInfo.getPayMeans())) {
+					if (StringUtils.isNotBlank(orderInfo.getRecipPhnno())) {
+						Integer userNo = orderInfo.getCustNo();
+						try {
+							orderInfo.setGoodsNm((String) resultMap.get("goodsNm"));
+							orderInfo.setGoodsCnt(String.valueOf(resultMap.get("goodsCnt")));
+							kakaotalkService.sendOrderGiftComplete(orderInfo, userNo);
+						} catch (Exception e) {
+							// TODO Auto-generated catch block
+							e.printStackTrace();
+						}
 					}
 				}
 			}
@@ -1593,4 +1612,60 @@ public class TsfOrderController extends TsfBaseController {
 
 		return mav;
 	}
+	
+	/**
+	 * 마이페이지 교환 옵션 변경 팝업
+	 *
+	 * @param Order
+	 * @return ModelAndView
+	 * @author card007
+	 * @since 2021. 03. 30
+	 */
+	@PostMapping("/change/option/popup/form")
+	@ResponseBody
+	public ModelAndView changeOptionPopupForm(OrderChange orderChange) {
+		ModelAndView mav = new ModelAndView();
+
+		// custNo 설정
+		if (TsfSession.isLogin()) {
+			orderChange.setCustNo(TsfSession.getInfo().getCustNo());
+		} else {
+			orderChange.setCustNo(0);
+		}
+
+		// 교환 옵션 정보 조회
+		Collection<OrderChange> exchangeOptionInfo = orderChangeService.getExchangeOptionInfo(orderChange);
+		mav.addObject("exchangeOptionInfo"	, exchangeOptionInfo);
+		mav.addObject("oneData"				, exchangeOptionInfo.iterator().next());
+		mav.addObject("ordDtlNo"			, orderChange.getOrdDtlNo());
+		mav.addObject("chgQty"				, orderChange.getChgQty());
+		mav.addObject("title"				, "옵션 변경");
+
+		mav.setViewName(super.getDeviceViewName("mypage/ChangeOptionPopupForm"));
+
+		return mav;
+	}
+	
+	/**
+	 * 선물받기 옵션변경
+	 *
+	 * @param Order
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021. 06. 18
+	 */
+	@PostMapping("/updateOrderDetailItemOpt2")
+	@ResponseBody
+	public GagaResponse updateOrderDetailItemOpt2(@RequestBody Order order) {	
+		// custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setUpdNo(TsfSession.getInfo().getCustNo());
+		} else {
+			order.setUpdNo(0);
+		}
+
+		coreOrderService.updateOrderDetailItemOpt2(order);
+
+		return super.ok("저장이 완료되었습니다.");
+	}
 }

+ 54 - 14
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -1,16 +1,11 @@
 package com.style24.front.biz.web;
 
-import com.gagaframework.web.parameter.GagaMap;
-import com.style24.core.biz.service.TscOrderService;
-import com.style24.front.biz.service.TsfOrderService;
-import com.style24.front.support.controller.TsfBaseController;
-import com.style24.front.support.security.session.TsfSession;
-import com.style24.persistence.domain.Order;
-import com.style24.persistence.domain.Payment;
-import kr.co.kcp.net.connection.*;
-import kr.co.kcp.net.connection.dto.*;
-import kr.co.kcp.net.connection.util.*;
-import lombok.extern.slf4j.Slf4j;
+import java.io.PrintWriter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Controller;
@@ -21,9 +16,22 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.core.biz.service.TscKakaotalkService;
+import com.style24.core.biz.service.TscOrderService;
+import com.style24.core.support.env.TscConstants;
+import com.style24.front.biz.service.TsfCustomerService;
+import com.style24.front.biz.service.TsfOrderService;
+import com.style24.front.support.controller.TsfBaseController;
+import com.style24.persistence.domain.CustContactHst;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.Payment;
+
+import kr.co.kcp.net.connection.ConnectionKCP;
+import kr.co.kcp.net.connection.dto.ParamData;
+import kr.co.kcp.net.connection.util.HttpJsonXml;
+import kr.co.kcp.net.connection.util.OpenHash;
+import lombok.extern.slf4j.Slf4j;
 
 @Controller
 @RequestMapping("/pg")
@@ -38,6 +46,12 @@ public class TsfPgController extends TsfBaseController {
 
 	@Autowired
 	private Environment env;
+	
+	@Autowired
+	private TsfCustomerService customerService;
+	
+	@Autowired
+	private TscKakaotalkService kakaotalkService;
 
 	/**
 	 * 무통장입금 입금통보
@@ -73,6 +87,32 @@ public class TsfPgController extends TsfBaseController {
 
 			// USAFE 보증보험 입금확인 송부
 			orderService.uSafeGuaranteeDepositCompleted(order);
+			
+			// 2021.06.18
+			GagaMap resultMap = coreOrderService.getOrderCompleteInfo(order);
+			Order orderInfo = (Order) resultMap.get("orderInfo");
+
+			// 2021.06.18 알림톡 이전 발송이력 조회
+			CustContactHst custContactHst = new CustContactHst();
+			custContactHst.setContactType(TscConstants.ContactType.BANK_DEPOSIT_INFO.value());
+			custContactHst.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value());
+			custContactHst.setContactMemo(String.valueOf(order.getOrdNo()));
+
+			int count = customerService.getGiftKakaoSendInfo(custContactHst);
+			
+			if (count < 1) {
+				if (StringUtils.isNotBlank(orderInfo.getOrdPhnno())) {
+					Integer userNo = orderInfo.getCustNo();
+					try {
+						orderInfo.setGoodsNm((String) resultMap.get("goodsNm"));
+						orderInfo.setGoodsCnt(String.valueOf(resultMap.get("goodsCnt")));
+						kakaotalkService.sendDepositComplete(orderInfo, userNo);
+					} catch (Exception e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+				}
+			}
 		} catch(Exception e) {
 			result = "9999";		// 실패. return 하지 말것.
 		}

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

@@ -817,7 +817,8 @@
 		INNER JOIN TB_SUPPLY_COMPANY S ON G.SUPPLY_COMP_CD = S.SUPPLY_COMP_CD
 		INNER JOIN TB_DELV_FEE_POLICY A ON G.DELV_FEE_CD = A.DELV_FEE_CD
 		INNER JOIN TB_DELIVERY_LOC B ON A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD 
-		                                  AND B.USE_YN = 'Y'
+		                             AND B.USE_YN = 'Y'
+		                             AND G.DELV_LOC_CD = B.DELV_LOC_CD 
 		INNER JOIN TB_SHIP_COMPANY SC ON B.SHIP_COMP_CD = SC.SHIP_COMP_CD
 		                              AND SC.USE_YN = 'Y'
 		WHERE G.GOODS_CD = #{goodsCd}

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

@@ -1,5 +1,5 @@
 <div class="modal-header htop">
-	<h5 class="modal-title" id="optionChangeLabel">교환 옵션 변경</h5>
+	<h5 class="modal-title" id="optionChangeLabel" th:text="${title}">옵션 변경</h5>
 </div>
 <div class="modal-body">
 	<div class="pop_cont">

+ 34 - 39
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewCreateFormMob.html

@@ -296,6 +296,7 @@
 			</section>
 		</main>
 <script type="text/javascript" src="/ux/plugins/gaga/gaga.kollus.js"></script>
+<script type="text/javascript" src="/ux/plugins/load-image.all.min.js"></script>
 <script th:inline="javascript">
 let reviewList = [[${reviewInfo}]];
 let reviewStat = [[${reviewStat}]];
@@ -401,7 +402,7 @@ var reviewCreate = function () {
      cancelBtnText: "취소",
      sureBtnText: "확인",
      sureBtnClick: function(){
-     	gagajf.ajaxFormSubmit($('#reviewForm').prop('action'), '#reviewForm', fnSaveCallback);
+     	gagajf.ajaxFormSubmit($('#reviewForm').prop('action'), '#reviewForm', fnSaveCallback, true);
      }
  });
 	
@@ -625,65 +626,59 @@ var fnChooseFile = function(obj) {
 	
 	// multiple 속성이 있으면 files에는 다수의 객체가 할당됨
 	var file = obj.files[0];
-	
-/* 	if (!gagajf.isNull(file.size) && Number(file.size) > (10 * 1000000)) {        
-		mcxDialog.alertC('이미지는 최대 10MB 이하 파일만 가능합니다.', {                          
-			sureBtnText: "확인",                                                    
-			sureBtnClick: function() {                                            
-				$(obj).parent('.imgUpload').find('.removes').trigger('click');    
-			}                                                                     
-		});                                                                       
-		return false;                                                             
-	}                 */                                                             
+	var fileType = file.type;
+                                                        
 
 	if (!gagajf.isNull(file.name)) {
 		var extension = "\.(jpg|jpeg|png)$";
 		if ((new RegExp(extension, "i")).test(file.name)) {
+			if ( file.size > (10 * 1000000)) {        
+				mcxDialog.alertC('이미지는 최대 10MB 이하 파일만 가능합니다.', {                          
+					sureBtnText: "확인",                                                    
+					sureBtnClick: function() {      
+						$(".pics").find(".removes").last().trigger('click');
+					}                                                                     
+				});                                                                       
+				return false;                                                             
+			}       
 			 gagajf.ajaxFileUpload('/common/file/upload?subDir=/review'
 						, file
 						, function(result) {
 							// 업로드한 파일명 설정
 							$(".pics").children().last().append("<input type='hidden' name='orgFileNmArr' id='orgFileNm"+(picLength+1)+"' value='"+result.oldFileName+"'>");
 							$(".pics").children().last().append("<input type='hidden' name='sysFileNmArr' id='sysFileNm"+(picLength+1)+"' value='"+result.newFileName+"'>");
+							
+							var limg = loadImage(file, function (img, data) {
+					            img.toBlob(function (blob) {
+					                var rotateFile = new File([blob], file.name, { type: fileType });
+					                var reader = new FileReader();
+					                reader.onload = function (e) { $(".pics").find("img").last().attr("src", e.target.result); }
+
+					                reader.readAsDataURL(rotateFile);
+					            }, fileType)
+					        }, { orientation: true });
 						}
 				); 
 		}
 		else{
+			if ( file.size > (50 * 1000000)) {        
+				mcxDialog.alertC('동영상은 최대 50MB 이하 파일만 가능합니다.', {                          
+					sureBtnText: "확인",                                                    
+					sureBtnClick: function() {      
+						$(".pics").find(".removes").last().trigger('click');
+					}                                                                     
+				});                                                                       
+				return false;                                                             
+			}  
+			
 			setTimeout(function(){
 				$(".imgUpload").find('.pics').last().addClass("mov");
 				$(".pics").children().last().append("<input type='hidden' name='kufKeyArr' id='kufKey"+(picLength+1)+"'>");
 				$(".pics").children().last().append("<input type='hidden' name='kmcKeyArr' id='kmcKey"+(picLength+1)+"'>");
 				gagaKollus.upload('Review', file, $('#kufKey'+(picLength+1)));
 			}, 1000);
-		}/* else if((new RegExp("mp4", "i")).test(file.name) || (new RegExp("x-m4v", "i")).test(file.name)){
-			setTimeout(function(){
-				$(".imgUpload").find('.pics').last().addClass("mov");
-				$(".pics").children().last().append("<input type='hidden' name='kufKeyArr' id='kufKey"+(picLength+1)+"'>");
-				$(".pics").children().last().append("<input type='hidden' name='kmcKeyArr' id='kmcKey"+(picLength+1)+"'>");
-				gagaKollus.upload('Review', file, $('#kufKey'+(picLength+1)));
-			}, 1000);
-		}else{
-			mcxDialog.alertC('첨부할 수 없는 파일 형식입니다.', {
-				sureBtnText: "확인",
-				sureBtnClick: function() {
-					$(".pics").find(".removes").last().trigger('click');
-				}
-			});
-			return false;
-		} */
+		}
 	}
-	// 이거 왜 안먹히지 
-
-	
-	// 파일 업로드
-/* 	 gagajf.ajaxFileUpload('/common/file/upload?subDir=/review'
-			, file
-			, function(result) {
-				// 업로드한 파일명 설정
-				$(".pics").children().eq(0).append("<input type='hidden' name='orgFileNmArr' id='orgFileNm"+(picLength+1)+"' value='"+result.oldFileName+"'>");
-				$(".pics").children().eq(0).append("<input type='hidden' name='sysFileNmArr' id='sysFileNm"+(picLength+1)+"' value='"+result.newFileName+"'>");
-			}
-	);   */
 }
 
 

+ 3 - 0
src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html

@@ -2004,6 +2004,9 @@ var custCpnApply = function(obj, idx, cpnType) {
 			
 			// 선택안함
 			$("#orderForm .payTypeNm").text("선택없음");
+			
+			// 2021.06.18 장바구니쿠폰 PG 제어가 있으면 초기화하고 결제타입 펼침
+			paymentInfoDispYn("Y");
 		} else {
 			// $("#orderForm input[name=rdi-paynormal]").attr("disabled", false);
 		}

+ 107 - 8
src/main/webapp/WEB-INF/views/mob/order/OrderGiftCompleteMob.html

@@ -75,13 +75,20 @@
 													</div>
 													<div class="info_box">
 														<div class="od_name">
-															<div class="brand"><span th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></span></div>
+															<div class="brand"><span th:text="${goods.brandGroupNm}"></span></div>
 															<div class="name" th:text="${goods.goodsNm}"></div>
 														</div>
 														<div class="od_opt">
-															<div class="option" th:each="colorNm, index : ${goods.colorNmArr}">
-																<em th:text="${colorNm}"></em>
-																<em th:text="${goods.optCd2Arr[index.index]}"></em>
+															<div class="option" th:each="colorNm, index : ${goods.colorNmArr}" th:attr="ordDtlNo=${goods.ordDtlNo}">
+																<th:block th:if="${goods.goodsType} == 'G056_S'">
+																	<em th:text="${goods.itemNmArr[index.index]}"></em>
+																	<em th:text="${colorNm}"></em>
+																	<em th:text="${goods.optCd2Arr[index.index]}"></em>
+																</th:block>
+																<th:block th:unless="${goods.goodsType} == 'G056_S'">
+																	<em th:text="${colorNm}"></em>
+																	<em th:text="${goods.optCd2Arr[index.index]}"></em>
+																</th:block>
 															</div>
 														</div>
 														<div class="od_calc">
@@ -94,7 +101,7 @@
 												<th:block th:if="${orderInfo.giftPackCloseYn} == 'N'">
 													<div class="goods_btn_wrap btn_group_flex">
 														<div>
-															<button type="button" class="btn btn_default btn_option_pop02">
+															<button type="button" class="btn btn_default btn_option_pop02" th:attr="ordNo=${goods.ordNo}, ordDtlNo=${goods.ordDtlNo}, ordQty=${goods.ordQty}" onclick="fnChangeOption(this)">
 																<span>옵션변경</span>
 															</button>
 														</div> <!-- 옵션변경_팝업02 호출 -->
@@ -227,13 +234,13 @@
 															<tr>
 																<td>
 																	<span class="sr-only">배송지명(이름 등)</span>
-																	<input type="text" class="form_control" name="recipNm" placeholder="배송지명(이름 등)" th:value="${orderInfo.recipNm}">
+																	<input type="text" class="form_control" name="recipNm" placeholder="배송지명(이름 등)" th:value="${orderInfo.recipNm}" style="ime-mode:active">
 																</td>
 															</tr>
 															<tr>
 																<td>
 																	<span class="sr-only">휴대폰 번호</span>
-																	<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호" th:value="${orderInfo.recipPhnno}">
+																	<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호" th:value="${orderInfo.recipPhnno}" data-valid-type="numeric">
 																</td>
 															</tr>
 															<tr>
@@ -359,6 +366,17 @@
 	</main>
 </form>
 
+<!--교환상품 옵션변경 팝업 -->
+<div class="modal pop_full optionChangePop" id="exchangePop" tabindex="-1" role="dialog" aria-labelledby="optionChangeLabel" aria-hidden="true">
+	<div class="modal-dialog" role="document">
+		<div class="modal-content">
+			<!--교환상품 옵션변경 팝업 내용 -->
+		</div>
+	</div>
+	<a href="#close-modal" rel="modal:close" id="exchangePop_close" class="close-modal">Close</a>
+</div>
+<!-- //교환상품 옵션변경 팝업 -->
+
 
 <script th:inline="javascript">
 // 배송관련정보 변수선언
@@ -389,6 +407,9 @@ $(document).ready( function() {
 	
 	// 2021.06.16 헤더숨김처리
 	$('#htopSub').hide();
+	
+	// 2021.06.18
+	$("#orderGiftForm .shipfold .fold_tit").trigger("click");
 });
 
 // 2.1 회원 배송지변경 팝업열기
@@ -572,10 +593,88 @@ var fnOpenDaumAddr = function() {
 	cfnOpenDaumAddr(daumZip);
 }
 
-//2021.04.09 하이픈처리
+// 2021.04.09 하이픈처리
 $(document).on("keyup", "#orderGiftForm input[name=recipPhnno]", function() { 
 	$(this).val( $(this).val().replace(/[^0-9]/g, "").replace(/(^02|^0505|^1[0-9]{3}|^0[0-9]{2})([0-9]+)?([0-9]{4})$/,"$1-$2-$3").replace("--", "-") ); 
 });
+
+// 2021.06.18 교환 옵션 변경 팝업
+var fnChangeOption = function(param) {
+	let ordNo 		= $(param).attr('ordNo');
+	let ordDtlNo 	= $(param).attr('ordDtlNo');
+	let ordQty 		= $(param).attr('ordQty');
+
+	var jsonObj 		= {};
+	jsonObj.ordNo 		= ordNo;
+	jsonObj.ordDtlNo 	= ordDtlNo;
+	jsonObj.chgQty 		= ordQty;
+
+	$.ajax({
+		type		: "POST",
+		url 		: "/order/change/option/popup/form",
+		data		: jsonObj,
+		dataType 	: "html",
+		success 	: function(result) {
+			if (result != null) {
+				$("#exchangePop .modal-content").html(result);
+				$("#exchangePop").modal("show");
+			}
+		}
+	});
+}
+
+// 교환 옵션 변경 팝업 콜백 처리
+var fnChangeOptionCallback = function(param) {
+	let ordDtlNo;
+	let html = '';
+	
+	html += '<span>교환옵션</span>';
+
+	// 교환옵션 HTML 처리
+	$.each(param, function(idx, item) {
+		ordDtlNo 			= item.ordDtlNo;
+		let colorNm 		= item.colorNm;
+		let itemNm 			= item.itemNm;
+		let goodsType 		= item.goodsType;
+		let optCd2 			= item.chgOptCd2;
+		let qty 			= item.chgQty;
+		let ordDtlItemSq	= item.ordDtlItemSq;
+
+		if (goodsType == 'G056_S') {
+			html += '<div class="option">';
+			html += '	<em>'+itemNm+'</em>';
+			html += '	<em>'+colorNm+'</em>';
+			html += '	<em>'+optCd2+'</em>';
+			html += '</div>';
+		} else {
+			html += '<div class="option">';
+			html += '	<em>'+colorNm+'</em>';
+			html += '	<em>'+optCd2+'</em>';
+			html += '</div>';
+		}
+		
+		var jsonObj 			= {};
+		jsonObj.ordDtlNo 		= ordDtlNo;
+		jsonObj.optCd2 			= optCd2;
+		jsonObj.ordDtlItemSq	= ordDtlItemSq;
+		
+		var jsonData = JSON.stringify(jsonObj);
+		
+		gagajf.ajaxJsonSubmit(
+			'/order/updateOrderDetailItemOpt2'
+			, jsonData
+			, function () {
+			}
+		);
+	});
+
+	$.each($('#orderGiftForm .option'), function(idx, item) {
+		if (ordDtlNo == $(item).attr('ordDtlNo')) {
+			$(item).css('display', '');
+			$(item).html(html);
+		}
+	});
+}
 </script>
 </th:block>
 </body>

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

@@ -34,10 +34,10 @@
 						<div class="inner">
 							<div class="form_field">
 								<div class="input_wrap">
-									<input type="text" name="recipNm" class="form_control" value="" maxlength="10" placeholder="받는 분">
+									<input type="text" name="recipNm" class="form_control" value="" maxlength="10" placeholder="받는 분" style="ime-mode:active">
 								</div>
 								<div class="input_wrap">
-									<input type="text" name="recipPhnno" class="form_control" value="" minlength="10" maxlength="14" placeholder="받는 분 휴대폰번호">
+									<input type="text" name="recipPhnno" class="form_control" value="" minlength="10" maxlength="14" placeholder="받는 분 휴대폰번호" data-valid-type="numeric">
 									<p class="desc_txt">선물이 타인에게 전송될수 있으니 받으실분 연락처를 정확하게 입력해주세요.</p> <!-- 210421_삭제 : 전화번호를 텍스트 삭제 -->
 								</div>
 								<div class="textarea_wrap">
@@ -60,15 +60,15 @@
 								<div class="form_field">
 									<div class="tab_cont active">
 										<div class="input_wrap">
-											<input type="text" name="recipNm" class="form_control" value="" maxlength="10" placeholder="받는 분">
+											<input type="text" name="recipNm" class="form_control" value="" maxlength="10" placeholder="받는 분" style="ime-mode:active">
 										</div>
 										<div class="form_field">
 											<div class="input_wrap">
-												<input type="text" name="recipPhnno" class="form_control" value="" minlength="10" maxlength="14" placeholder="받으실분 휴대폰번호">
+												<input type="text" name="recipPhnno" class="form_control" value="" minlength="10" maxlength="14" placeholder="받으실분 휴대폰번호" data-valid-type="numeric">
 												<p class="desc_txt">선물이 타인에게 전송될수 있으니 전화번호를 받으실분 연락처를 정확하게 입력해주세요.</p>
 											</div>
 											<div class="textarea_wrap">
-												<textarea class="doc_review" name="review" id="giftMsg" placeholder="선물 메시지 입력&#13;&#10;(미 입력시 ‘감사합니다’로 발송됩니다.)"></textarea>
+												<textarea class="doc_review" name="review" id="giftMsg" placeholder="선물 메시지 입력&#13;&#10;(미 입력시 ‘감사합니다’로 발송됩니다.)" style="ime-mode:active"></textarea>
 												<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/200</p>
 											</div>
 										</div>

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

@@ -377,7 +377,8 @@
 				</div>
 			</div>
 <script type="text/javascript" src="/ux/plugins/gaga/gaga.kollus.js"></script>
-<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/exif-js"></script>
+<script type="text/javascript" src="/ux/plugins/load-image.all.min.js"></script>
+<!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/exif-js"></script> -->
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 let reviewList = [[${reviewInfo}]];
@@ -573,6 +574,7 @@ var fnChooseFile = function(obj) {
 	var picLength = $(".pics").length;
 	// multiple 속성이 있으면 files에는 다수의 객체가 할당됨
 	var file = obj.files[0];
+	var fileType = file.type;
 	
 	if (!gagajf.isNull(file.name)) {
 		var extension = "\.(jpg|jpeg|png)$";
@@ -593,10 +595,19 @@ var fnChooseFile = function(obj) {
 							// 업로드한 파일명 설정
 							$(".pics").children().eq(0).append("<input type='hidden' name='orgFileNmArr' id='orgFileNm"+(picLength+1)+"' value='"+result.oldFileName+"'>");
 							$(".pics").children().eq(0).append("<input type='hidden' name='sysFileNmArr' id='sysFileNm"+(picLength+1)+"' value='"+result.newFileName+"'>");
+							
+							var limg = loadImage(file, function (img, data) {
+					            img.toBlob(function (blob) {
+					                var rotateFile = new File([blob], file.name, { type: fileType });
+					                var reader = new FileReader();
+					                reader.onload = function (e) { $(".pics").find("img").eq(0).attr("src", e.target.result); }
 
+					                reader.readAsDataURL(rotateFile);
+					            }, fileType)
+					        }, { orientation: true });
 						}
 				); 
-		}else if((new RegExp("mp4", "i")).test(file.name)){
+		}else{
 			if ( file.size > (50 * 1000000)) {        
 				mcxDialog.alertC('동영상은 최대 50MB 이하 파일만 가능합니다.', {                          
 					sureBtnText: "확인",                                                    
@@ -613,7 +624,7 @@ var fnChooseFile = function(obj) {
 				$(".pics").children().eq(0).append("<input type='hidden' name='kmcKeyArr' id='kmcKey"+(picLength+1)+"'>");
 				gagaKollus.upload('Review', file, $('#kufKey'+(picLength+1)));
 			}, 1000);
-		}else{
+		}/* else{
 			mcxDialog.alertC('첨부할 수 없는 파일 형식입니다.', {
 				sureBtnText: "확인",
 				sureBtnClick: function() {
@@ -621,7 +632,7 @@ var fnChooseFile = function(obj) {
 				}
 			});
 			return false;
-		}
+		} */
 	}
 
 }
@@ -730,3 +741,5 @@ $(document).ready(function() {
 
 </body>
 </html>
+
+

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
src/main/webapp/ux/plugins/load-image.all.min.js


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است