Prechádzať zdrojové kódy

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

xodud lee 4 rokov pred
rodič
commit
9adeb760cc

+ 11 - 2
src/main/java/com/style24/admin/biz/service/TsaShoplinkerService.java

@@ -461,10 +461,19 @@ public class TsaShoplinkerService {
                 	htmlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">사이즈정보</span>";
                 	htmlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
 
-                	String brandSizeImg = env.getProperty("upload.image.view") + "/Upload/brandSizeImg/";
+                	String brandSizeImg = env.getProperty("domain.image").replace("/Upload", "") + "/Upload/brandSizeImg/";
                 	if( "Y".equals(goodsMap.getKidsYn())){
                 		brandSizeImg += "kids/"+goodsMap.getBrandEnm() +".jpg";
-                		htmlDesc += "<img src=\""+ brandSizeImg +"\" alt=\"ANDEW 표준 사이즈\" style=\"display: block;margin: 10px auto 0;\">";
+
+                		// 나이키 조던/나이키 에스비/나이키 와이에이/컨버스/헐리 는 플레이키즈 사이즈표
+        	    		if( "S0003".equals(goodsMap.getBrandCd()) || "S0004".equals(goodsMap.getBrandCd()) || "S0007".equals(goodsMap.getBrandCd())
+        	    			|| "S0001".equals(goodsMap.getBrandCd()) || "S0006".equals(goodsMap.getBrandCd())){
+
+        	    			brandSizeImg += "kids/PLAYKIZ.jpg";
+        	    		}
+
+        	    		htmlDesc += "<img src=\""+ brandSizeImg +"\" alt=\"ANDEW 표준 사이즈\" style=\"display: block;margin: 10px auto 0;\">";
+
                 	}else {
                 		brandSizeImg += "casuals/"+goodsMap.getBrandEnm() +".jpg";
                 		htmlDesc += "<img src=\""+ brandSizeImg +"\" alt=\"ANDEW 표준 사이즈\" style=\"display: block;margin: 10px auto 0;\">";

+ 1 - 1
src/main/webapp/WEB-INF/views/envset/AnswerPhaseForm.html

@@ -109,7 +109,7 @@
 						<th>사이트<em class="required" title="필수"></em></th>
 						<td>
 							<select name="siteCd" required="required" data-valid-name="사이트">
-								<option>[선택]</option>
+<!-- 								<option>[선택]</option> -->
 								<option th:if="${siteList}" th:each="oneData, status : ${siteList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
 						</td>

+ 22 - 22
src/main/webapp/WEB-INF/views/envset/BasicEnvsetForm.html

@@ -122,19 +122,19 @@
 				<tbody>
 					<tr>
 						<th>탈퇴후재가입불가기간(일)</th>
-						<td><input name="c10StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="탈퇴후재가입불가기간"/><span class="cRed">일</span> 동안 탈퇴 후 재가입 불가합니다.</td>
+						<td><input name="c10StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="탈퇴후재가입불가기간"/><span class="cRed">일</span> 동안 탈퇴 후 재가입 불가합니다.</td>
 					</tr>
 					<tr>
 						<th>휴면회선정기간(일)</th>
-						<td><input name="c10StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="휴면회원선정기간"/><span class="cRed">일</span> 동안 사이트에 로그인 하지 않은 회원을 휴면회원으로 선정합니다.</td>
+						<td><input name="c10StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="휴면회원선정기간"/><span class="cRed">일</span> 동안 사이트에 로그인 하지 않은 회원을 휴면회원으로 선정합니다.</td>
 					</tr>
 					<tr>
 						<th>휴면회원전환기간(일)</th>
-						<td><input name="c10StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="휴면회원전환기간"/><span class="cRed">일</span> 동안 사이트에 로그인 하지 않은 회원을 휴면회원으로 전환합니다.</td>
+						<td><input name="c10StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="휴면회원전환기간"/><span class="cRed">일</span> 동안 사이트에 로그인 하지 않은 회원을 휴면회원으로 전환합니다.</td>
 					</tr>
 					<tr>
 						<th>회원등급산정기간</th>
-						<td>전월 기준 최근 <input name="c10StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="회원등급산정기간"/><span class="cRed">개월</span> 기간 동안의 구매금액(실결제금액)과 구매건수를 기준으로 월초에 산정합니다. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자세한 사항은 "<span class="cRed">운영관리 > 환경설정 > 회원등급정책관리</span>" 화면을 참조해 주세요.</span></td>
+						<td>전월 기준 최근 <input name="c10StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="회원등급산정기간"/><span class="cRed">개월</span> 기간 동안의 구매금액(실결제금액)과 구매건수를 기준으로 월초에 산정합니다. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자세한 사항은 "<span class="cRed">운영관리 > 환경설정 > 회원등급정책관리</span>" 화면을 참조해 주세요.</span></td>
 					</tr>
 				</tbody>
 			</table>
@@ -167,7 +167,7 @@
 					<tr>
 						<th>베스트상품노출개수</th>
 						<td>
-							카테고리와 아울렛의 베스트 영역에 상품이 <input name="g10StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="integer"/> 개 만큼만 노출됩니다.
+							카테고리와 아울렛의 베스트 영역에 상품이 <input name="g10StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger"/> 개 만큼만 노출됩니다.
 						</td>
 					</tr>
 				</tbody>
@@ -187,20 +187,20 @@
 						<td>
 							<!-- 2021-06-08 장바구니 보관 기간 30일 고정 > 지하 1층 회의실B 에서 한수인리더 확인.
 							     장바구니 20일 경과 상품 구매 알림톡 보내기 위해 수정되지 않도록 변경 -xodud1202 -->
-							장바구니 보관기간은 <input name="g11StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" readonly disabled data-valid-name="장바구니보관기간"/><span class="cRed">일</span> 입니다. 보관기간 경과 시 자동 삭제됩니다. (보관기간 30일 고정)
+							장바구니 보관기간은 <input name="g11StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" readonly disabled data-valid-name="장바구니보관기간"/><span class="cRed">일</span> 입니다. 보관기간 경과 시 자동 삭제됩니다. (보관기간 30일 고정)
 							<span class="infoTxt cBlue"><i class="fa fa-info-circle marL20" aria-hidden="true"></i>0으로 설정하면 자동으로 삭제 처리를 하지 않습니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>장바구니담기최대상품수</th>
 						<td>
-							장바구니에 담을 수 있는 최대 상품 개수는 <input name="g11StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="장바구니보관기간"/><span class="cRed">개</span> 입니다.
+							장바구니에 담을 수 있는 최대 상품 개수는 <input name="g11StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="장바구니보관기간"/><span class="cRed">개</span> 입니다.
 						</td>
 					</tr>
 					<tr>
 						<th>위시리스트보관기간(일)</th>
 						<td>
-							위시리스트 보관기간은 <input name="g11StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="위시리스트보관기간"/><span class="cRed">일</span> 입니다. 보관기간 경과 시 자동 삭제됩니다.
+							위시리스트 보관기간은 <input name="g11StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="위시리스트보관기간"/><span class="cRed">일</span> 입니다. 보관기간 경과 시 자동 삭제됩니다.
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>0으로 설정하면 자동으로 삭제 처리를 하지 않습니다.</span>
 						</td>
 					</tr>
@@ -219,14 +219,14 @@
 					<tr>
 						<th>미로그인 시작일(일)</th>
 						<td>
-							 <input name="g12StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
+							 <input name="g12StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
 							 <span class="infoTxt cBlue"><i class="fa fa-info-circle marL20" aria-hidden="true"></i>0으로 설정하면 자동으로 발송되지 않습니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>미로그인 종료일(일)</th>
 						<td>
-							 <input name="g12StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="미로그인 종료일"/><span class="cRed">일</span> 입니다.
+							 <input name="g12StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="미로그인 종료일"/><span class="cRed">일</span> 입니다.
 							 <span class="infoTxt cBlue"><i class="fa fa-info-circle marL20" aria-hidden="true"></i>0으로 설정하면 자동으로 발송되지 않습니다.</span>
 						</td>
 					</tr>
@@ -255,14 +255,14 @@
 					<tr>
 						<th>미로그인 시작일(일)</th>
 						<td>
-							 <input name="g13StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
+							 <input name="g13StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
 							 <span class="infoTxt cBlue"><i class="fa fa-info-circle marL20" aria-hidden="true"></i>0으로 설정하면 자동으로 발송되지 않습니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>미로그인 종료일(일)</th>
 						<td>
-							 <input name="g13StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
+							 <input name="g13StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
 							 <span class="infoTxt cBlue"><i class="fa fa-info-circle marL20" aria-hidden="true"></i>0으로 설정하면 자동으로 발송되지 않습니다.</span>
 						</td>
 					</tr>
@@ -291,14 +291,14 @@
 					<tr>
 						<th>미로그인 시작일(일)</th>
 						<td>
-							 <input name="g14StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
+							 <input name="g14StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
 							 <span class="infoTxt cBlue"><i class="fa fa-info-circle marL20" aria-hidden="true"></i>0으로 설정하면 자동으로 발송되지 않습니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>미로그인 종료일(일)</th>
 						<td>
-							 <input name="g14StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
+							 <input name="g14StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="미로그인 시작일"/><span class="cRed">일</span> 입니다.
 							 <span class="infoTxt cBlue"><i class="fa fa-info-circle marL20" aria-hidden="true"></i>0으로 설정하면 자동으로 발송되지 않습니다.</span>
 						</td>
 					</tr>
@@ -339,17 +339,17 @@
 					<tr>
 						<th>최소결제금액</th>
 						<td>
-							한 번의 결제 시 상품의 실결제금액이 <input name="o10StrSetVal2" type="text" class="w100 aR" maxlength="7" data-valid-type="integer" data-valid-name="최소결제금액"/> <span class="cRed">원</span> 보다 적을 경우 결제가 불가합니다.
+							한 번의 결제 시 상품의 실결제금액이 <input name="o10StrSetVal2" type="text" class="w100 aR" maxlength="7" data-valid-type="pinteger" data-valid-name="최소결제금액"/> <span class="cRed">원</span> 보다 적을 경우 결제가 불가합니다.
 						</td>
 					</tr>
 					<tr>
 						<th>무료배송비최소주문금액</th>
-						<td>최소주문금액이 <input name="o10StrSetVal3" type="text" class="w100 aR" maxlength="6" data-valid-type="integer" data-valid-name="무료배송비최소주문금액"/> 원 이상이면 배송비가 무료입니다. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>이 값은 기본값이며 공급업체별로 다르게 설정할 수도 있습니다.</span></td>
+						<td>최소주문금액이 <input name="o10StrSetVal3" type="text" class="w100 aR" maxlength="6" data-valid-type="pinteger" data-valid-name="무료배송비최소주문금액"/> 원 이상이면 배송비가 무료입니다. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>이 값은 기본값이며 공급업체별로 다르게 설정할 수도 있습니다.</span></td>
 					</tr>
 					<tr>
 						<th>총알배송주문가능시간</th>
 						<td>
-							오전 <input name="o10StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="총알배송주문가능시간"/> <span class="cRed">시</span> 까지 주문한 자사상품은 총알배송이 가능합니다.
+							오전 <input name="o10StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="총알배송주문가능시간"/> <span class="cRed">시</span> 까지 주문한 자사상품은 총알배송이 가능합니다.
 						</td>
 					</tr>
 				</tbody>
@@ -374,13 +374,13 @@
 					<tr>
 						<th>품절안내메시지자동발송기간(일)</th>
 						<td>
-							품절안내방법이 "자동"일 경우 결제완료 후 <input name="o11StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="자동품절안내메시지발송기간(일)"/><span class="cRed">일</span> 동안 출고되지 않으면 품절안내 메시지를 자동으로 발송합니다.
+							품절안내방법이 "자동"일 경우 결제완료 후 <input name="o11StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="자동품절안내메시지발송기간(일)"/><span class="cRed">일</span> 동안 출고되지 않으면 품절안내 메시지를 자동으로 발송합니다.
 						</td>
 					</tr>
 					<tr>
 						<th>품절메시지자동발송기간(일)</th>
 						<td>
-							품절안내방법이 "자동"일 경우 결제완료 후 <input name="o11StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="자동품절메시지발송기간(일)"/><span class="cRed">일</span> 동안 출고되지 않으면 품절 메시지를 자동으로 발송합니다.
+							품절안내방법이 "자동"일 경우 결제완료 후 <input name="o11StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="자동품절메시지발송기간(일)"/><span class="cRed">일</span> 동안 출고되지 않으면 품절 메시지를 자동으로 발송합니다.
 						</td>
 					</tr>
 				</tbody>
@@ -398,19 +398,19 @@
 					<tr>
 						<th>배송완료자동처리기간(일)</th>
 						<td>
-							<span class="cRed">배송중</span> 상태를 기준으로 <input name="d10StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="배송완료자동처리일수"/><span class="cRed">일</span> 경과 시 자동으로 배송완료로 처리합니다.
+							<span class="cRed">배송중</span> 상태를 기준으로 <input name="d10StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="배송완료자동처리일수"/><span class="cRed">일</span> 경과 시 자동으로 배송완료로 처리합니다.
 						</td>
 					</tr>
 					<tr>
 						<th>구매확정자동처리기간(일)</th>
 						<td>
-							배송완료일 기준으로 <input name="d10StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="구매확정자동처리일수"/><span class="cRed">일</span> 경과 시 자동으로 구매확정 처리합니다.
+							배송완료일 기준으로 <input name="d10StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="구매확정자동처리일수"/><span class="cRed">일</span> 경과 시 자동으로 구매확정 처리합니다.
 						</td>
 					</tr>
 					<tr>
 						<th>반품가능기간(일)</th>
 						<td>
-							배송완료 후 <input name="d10StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="반품가능기간"/><span class="cRed">일</span> 내에 반품 신청 및 접수가 가능합니다.
+							배송완료 후 <input name="d10StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="반품가능기간"/><span class="cRed">일</span> 내에 반품 신청 및 접수가 가능합니다.
 						</td>
 					</tr>
 				</tbody>

+ 117 - 17
src/main/webapp/WEB-INF/views/envset/BenefitEnvsetForm.html

@@ -60,13 +60,13 @@
 					<tr>
 						<th>구매포인트소멸기한(일)</th>
 						<td>
-							적립일로부터 <input name="c12StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="구매포인트소멸기한(년)"/><span class="cRed">일</span> 경과 시 소멸합니다.
+							적립일로부터 <input name="c12StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="구매포인트소멸기한(년)"/><span class="cRed">일</span> 경과 시 소멸합니다.
 						</td>
 					</tr>
 					<tr>
 						<th>상품평포인트소멸기한(일)</th>
 						<td>
-							적립일로부터 <input name="c12StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="상품평포인트소멸기한(년)"/><span class="cRed">일</span> 경과 시 소멸합니다.
+							적립일로부터 <input name="c12StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="상품평포인트소멸기한(년)"/><span class="cRed">일</span> 경과 시 소멸합니다.
 						</td>
 					</tr>
 				</tbody>
@@ -84,56 +84,56 @@
 					<tr>
 						<th>자사상품정상포인트적립율(PC)</th>
 						<td>
-							<input name="c14StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="자사상품정상포인트적립율(PC)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품정상포인트적립율(PC)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 정상상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>자사상품정상포인트적립율(모바일)</th>
 						<td>
-							<input name="c14StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="자사상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 정상상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>자사상품이월포인트적립율(PC)</th>
 						<td>
-							<input name="c14StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="자사상품이월포인트적립율(PC)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품이월포인트적립율(PC)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 이월상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>자사상품이월포인트적립율(모바일)</th>
 						<td>
-							<input name="c14StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="자사상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 이월상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>입점상품정상포인트적립율(PC)</th>
 						<td>
-							<input name="c14StrSetVal5" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="입점상품정상포인트적립율(PC)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal5" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품정상포인트적립율(PC)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 정상상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>입점상품정상포인트적립율(모바일)</th>
 						<td>
-							<input name="c14StrSetVal6" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="입점상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal6" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 정상상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>입점상품이월포인트적립율(PC)</th>
 						<td>
-							<input name="c14StrSetVal7" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="입점상품이월포인트적립율(PC)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal7" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품이월포인트적립율(PC)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 이월상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>입점상품이월포인트적립율(모바일)</th>
 						<td>
-							<input name="c14StrSetVal8" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="입점상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal8" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 이월상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
@@ -152,7 +152,7 @@
 					<tr>
 						<th>상품평등록가능기간(일)</th>
 						<td>
-							상품평 등록가능 기간은 <span class="cRed">구매일</span>로부터 <input name="c15StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="상품평등록가능기간(일)"/><span class="cRed">일</span> 입니다. 등록가능기간 경과 시 등록 불가합니다.
+							상품평 등록가능 기간은 <span class="cRed">구매일</span>로부터 <input name="c15StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="상품평등록가능기간(일)"/><span class="cRed">일</span> 입니다. 등록가능기간 경과 시 등록 불가합니다.
 						</td>
 					</tr>
 					<tr>
@@ -166,21 +166,21 @@
 					<tr>
 						<th>텍스트상품평포인트</th>
 						<td>
-							<input name="c15StrSetVal3" type="text" class="w100 aR" maxlength="5" data-valid-type="integer" data-valid-name="텍스트상품평포인트"/>
+							<input name="c15StrSetVal3" type="text" class="w100 aR" maxlength="5" data-valid-type="pinteger" data-valid-name="텍스트상품평포인트"/>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>작성한 상품평이 텍스트일 경우 적립해 줄 포인트입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>포토상품평포인트</th>
 						<td>
-							<input name="c15StrSetVal4" type="text" class="w100 aR" maxlength="5" data-valid-type="integer" data-valid-name="포토상품평포인트"/>
+							<input name="c15StrSetVal4" type="text" class="w100 aR" maxlength="5" data-valid-type="pinteger" data-valid-name="포토상품평포인트"/>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>작성한 상품평이 포토일 경우 적립해 줄 포인트입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>베스트상품평포인트</th>
 						<td>
-							<input name="c15StrSetVal5" type="text" class="w100 aR" maxlength="5" data-valid-type="integer" data-valid-name="베스트상품평포인트"/>
+							<input name="c15StrSetVal5" type="text" class="w100 aR" maxlength="5" data-valid-type="pinteger" data-valid-name="베스트상품평포인트"/>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>작성한 상품평이 베스트로 선정될 경우 적립해 줄 포인트입니다.</span>
 						</td>
 					</tr>
@@ -199,20 +199,20 @@
 					<tr>
 						<th>포인트사용기준</th>
 						<td>
-							실결제액 기준 <input name="c17StrSetVal1" type="text" class="w100 aR" maxlength="7" data-valid-type="integer" data-valid-name="포인트사용기준"/> <span class="cRed">원</span> 이상일 때 포인트 사용이 가능합니다.
+							실결제액 기준 <input name="c17StrSetVal1" type="text" class="w100 aR" maxlength="7" data-valid-type="pinteger" data-valid-name="포인트사용기준"/> <span class="cRed">원</span> 이상일 때 포인트 사용이 가능합니다.
 						</td>
 					</tr>
 					<tr>
 						<th>최대사용가능포인트율(%)</th>
 						<td>
-							실결제액의 <input name="c17StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="최대사용가능포인트율"/> <span class="cRed">%</span> 까지 포인트 사용이 가능합니다.
+							실결제액의 <input name="c17StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="최대사용가능포인트율"/> <span class="cRed">%</span> 까지 포인트 사용이 가능합니다.
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>한 번의 결제 시 <span class="cRed">실결제액 기준</span>으로 사용할 수 있는 최대 포인트율을 설정합니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>최대즉시사용포인트율(%)</th>
 						<td>
-							포인트를 <input name="c17StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="최대즉시사용포인트율"/> <span class="cRed">%</span> 이하로 즉시 사용할 수 있습니다.
+							포인트를 <input name="c17StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="최대즉시사용포인트율"/> <span class="cRed">%</span> 이하로 즉시 사용할 수 있습니다.
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>한 번의 결제 시 <span class="cRed">적립금액 기준</span>으로 즉시 사용할 수 있는 최대 포인트율을 설정합니다.</span>
 						</td>
 					</tr>
@@ -299,6 +299,86 @@
 			params.strSetVal1 = $('input[name=c12StrSetVal1]').val();
 			params.strSetVal2 = $('input[name=c12StrSetVal2]').val();
 		} else if (envsetType == 'C14') { // 구매포인트
+			if ($('input[name=c14StrSetVal1]').val() > 100) {
+				mcxDialog.alertC('자사상품정상포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal1]').focus();
+					}
+				});
+				return;
+			}
+		
+			if ($('input[name=c14StrSetVal2]').val() > 100) {
+				mcxDialog.alertC('자사상품정상포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal2]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal3]').val() > 100) {
+				mcxDialog.alertC('자사상품이월포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal3]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal4]').val() > 100) {
+				mcxDialog.alertC('자사상품이월포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal4]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal5]').val() > 100) {
+				mcxDialog.alertC('입점상품정상포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal5]').focus();
+					}
+				});
+				return;
+			}
+		
+			if ($('input[name=c14StrSetVal6]').val() > 100) {
+				mcxDialog.alertC('입점상품정상포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal6]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal7]').val() > 100) {
+				mcxDialog.alertC('입점상품이월포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal7]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal8]').val() > 100) {
+				mcxDialog.alertC('입점상품이월포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal8]').focus();
+					}
+				});
+				return;
+			}
+		
 			params.envsetNm = '구매포인트';
 			params.strSetVal1 = $('input[name=c14StrSetVal1]').val();
 			params.strSetVal2 = $('input[name=c14StrSetVal2]').val();
@@ -316,6 +396,26 @@
 			params.strSetVal4 = $('input[name=c15StrSetVal4]').val().removeComma();
 			params.strSetVal5 = $('input[name=c15StrSetVal5]').val().removeComma();
 		} else if (envsetType == 'C17') { // 포인트사용
+			if ($('input[name=c17StrSetVal2]').val() > 100) {
+				mcxDialog.alertC('최대사용가능포인트율(%)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c17StrSetVal2]').focus();
+					}
+				});
+				return;
+			}
+		
+			if ($('input[name=c17StrSetVal3]').val() > 100) {
+				mcxDialog.alertC('최대즉시사용포인트율(%)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c17StrSetVal3]').focus();
+					}
+				});
+				return;
+			}
+			
 			params.envsetNm = '포인트사용';
 			params.strSetVal1 = $('input[name=c17StrSetVal1]').val().removeComma();
 			params.strSetVal2 = $('input[name=c17StrSetVal2]').val();

+ 4 - 4
src/main/webapp/WEB-INF/views/envset/CustomerGradePolicyForm.html

@@ -96,17 +96,17 @@
 					<tr>
 						<th>등급산정기간<em class="required" title="필수"></em></th>
 						<td colspan="5">
-							전월 기준 최근 <input type="text" name="calMonths" class="w50 aR" maxlength="2" value="3" required="required" data-valid-type="integer" data-valid-name="등급산정기간"/> 개월
+							전월 기준 최근 <input type="text" name="calMonths" class="w50 aR" maxlength="2" value="3" required="required" data-valid-type="pinteger" data-valid-name="등급산정기간"/> 개월
 						</td>
 					</tr>
 					<tr>
 						<th>승급조건<em class="required" title="필수"></em></th>
 						<td colspan="7">
 							구매금액(<span class="infoTxt cBlue"><i class="fa fa-info-circle" aria-hidden="true"></i>쿠폰할인, 포인트할인, 배송비, 취소/반품내역을 반영한 실결제금액</span>)
-							<input type="text" name="minBuyAmt" class="w100 aR" maxlength="10" value="0" required="required" data-valid-type="integer" data-valid-name="구매금액"/>원 <span class="cRed">이상</span>
+							<input type="text" name="minBuyAmt" class="w100 aR" maxlength="10" value="0" required="required" data-valid-type="pinteger" data-valid-name="구매금액"/>원 <span class="cRed">이상</span>
 							<span class="infoTxt cRed"><strong>또는</strong></span>
-							주문당 <input type="text" name="buyExceptAmt" class="w100 aR" maxlength="10" value="0" required="required" data-valid-type="integer" data-valid-name="구매건수제외조건"/>원 <span class="cRed">미만 구매건을 제외</span>한 구매건수(<span class="infoTxt cBlue"><i class="fa fa-info-circle" aria-hidden="true"></i>취소를 반영한 주문건수</span>)
-							<input type="text" name="minBuyCnt" class="w50 aR" maxlength="2" value="0" required="required" data-valid-type="integer" data-valid-name="구매건수"/>건 <span class="cRed">이상</span>
+							주문당 <input type="text" name="buyExceptAmt" class="w100 aR" maxlength="10" value="0" required="required" data-valid-type="pinteger" data-valid-name="구매건수제외조건"/>원 <span class="cRed">미만 구매건을 제외</span>한 구매건수(<span class="infoTxt cBlue"><i class="fa fa-info-circle" aria-hidden="true"></i>취소를 반영한 주문건수</span>)
+							<input type="text" name="minBuyCnt" class="w50 aR" maxlength="2" value="0" required="required" data-valid-type="pinteger" data-valid-name="구매건수"/>건 <span class="cRed">이상</span>
 						</td>
 					</tr>
 					<tr>

+ 41 - 6
src/main/webapp/ux/plugins/gaga/gaga.validation.js

@@ -107,7 +107,7 @@ var gagajf = {
 	testRegexp : function(el, regexp, type) {
 		var val = $(el).val();
 
-		if (type == 'integer' || type == 'real') {
+		if (type == 'integer' || type == 'pinteger' || type == 'real' || type == 'preal') {
 			// 콤마(,) 제거
 			val = val.removeComma();
 		}
@@ -307,12 +307,24 @@ var gagajf = {
 					if (gagajf.testRegexp($(el), /(^-?[0-9]+\d*$)|(^-$)/, 'integer'))
 						return true;
 
+					isInvalid = false;
+					return false;
+				case 'pinteger': // 양의정수
+					if (gagajf.testRegexp($(el), /(^[0-9]+\d*$)/, 'pinteger'))
+						return true;
+
 					isInvalid = false;
 					return false;
 				case 'real': // 실수
 					if (gagajf.testRegexp($(el), /^-?(([0-9]+\.?)|(\.?))\d*$/, 'real'))
 						return true;
 
+					isInvalid = false;
+					return false;
+				case 'preal': // 실수
+					if (gagajf.testRegexp($(el), /^(([0-9]+\.?)|(\.?))\d*$/, 'preal'))
+						return true;
+
 					isInvalid = false;
 					return false;
 				case 'alphaNumeric': // 알파벳+숫자
@@ -396,8 +408,8 @@ var gagajf = {
 							return false;
 						}
 					}
-
 				case 'integer': // 정수
+				case 'pinteger': // 양의정수
 					//최대값
 					if ($(el).attr("max")) {
 						if ($(el).val() > $(el).attr("max")) {
@@ -425,6 +437,7 @@ var gagajf = {
 						}
 					}
 				case 'real': // 실수
+				case 'preal': // 양의실수
 					//최대값
 					if ($(el).attr("max")) {
 						if ($(el).val() > $(el).attr("max")) {
@@ -478,24 +491,24 @@ var gagajf = {
 	},
 
 	/**
-	 * formId의 input의 data-valid-type이 integer, real인 경우에 값에 comma(,)를 자동으로 붙여 표시한다.
+	 * formId의 input의 data-valid-type이 integer, pinteger, real, preal인 경우에 값에 comma(,)를 자동으로 붙여 표시한다.
 	 * 사용) gagajf.addCommaAtNumberFormattedInput('#registerForm');
 	 */
 	addCommaAtNumberFormattedInput : function(formId) {
 		$(formId).find('input').each(function(idx, el) {
-			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'real') {
+			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'pinteger' || $(el).data('validType') == 'real' || $(el).data('validType') == 'preal') {
 				$(el).val($(el).val().removeComma().addComma());
 			}
 		});
 	},
 
 	/**
-	 * formId의 input의 data-valid-type이 integer, real, numeric 인 경우에 값에 comma(,)를 자동으로 제거한다.
+	 * formId의 input의 data-valid-type이 integer, pinteger, real, preal, numeric 인 경우에 값에 comma(,)를 자동으로 제거한다.
 	 * 사용) gagajf.removeCommaAtNumberFormattedInput('#registerForm');
 	 */
 	removeCommaAtNumberFormattedInput : function(formId) {
 		$(formId).find('input').each(function(idx, el) {
-			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'real' || $(el).data('validType') == 'numeric') {
+			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'pinteger' || $(el).data('validType') == 'real' || $(el).data('validType') == 'preal' || $(el).data('validType') == 'numeric') {
 				$(el).val($(el).val().removeComma());
 			}
 		});
@@ -1078,6 +1091,7 @@ var gagajf = {
  *           data-valid-type="integer" : 정수. 속성 지정시 숫자와 +, - 만 입력 가능
  *           data-valid-type="pinteger" : 양의정수. 속성 지정시 숫자와 +만 입력 가능
  *           data-valid-type="real" : 실수. 속성 지정시 숫자와 +, -, . 만 입력 가능
+ *           data-valid-type="preal" : 양의실수. 속성 지정시 숫자와 +, .만 입력 가능
  *           data-valid-type="alphaNumeric" : 알파벳과 숫자. 속성 지정 시 영문과 숫자만 형식에 맞게 입력 가능
  *           data-valid-type="date" : 숫자와 / 만 입력 가능
  *           data-valid-type="korean" : 한글. 속성 지정 시 한글만 형식에 맞게 입력 가능
@@ -1092,6 +1106,7 @@ var gagajf = {
  *     <input type="text" data-valid-type="integer" />
  *     <input type="text" data-valid-type="pinteger" />
  *     <input type="text" data-valid-type="real" />
+ *     <input type="text" data-valid-type="preal" />
  *     <input type="text" data-valid-type="alphaNumeric" />
  *     <input type="text" data-valid-type="date" />
  *     <input type="text" data-valid-type="korean" />
@@ -1182,6 +1197,26 @@ $(document).on("keydown", "[data-valid-type=real]", function() {
 		event.returnValue = false;
 	}
 });
+$(document).on("blur", "[data-valid-type=preal]", function() { $(this).val($(this).val().removeComma().addComma()); });
+$(document).on("click", "[data-valid-type=preal]", function() { $(this).val($(this).val().removeComma()); });
+$(document).on("keyup", "[data-valid-type=preal]", function() { $(this).val($(this).val().replace(/[^0-9\+\.]/gi,"")); });
+$(document).on("keydown", "[data-valid-type=preal]", function() {
+	var value = $(this).val();
+
+	var keyCode = gagajf.getKeyCode();
+	if (keyCode == -1)
+		return true;
+
+	if (!((keyCode >= 48 && keyCode <= 57 && !event.shiftKey) // 0 ~ 9
+		|| (keyCode >= 96 && keyCode <= 105) // 0 ~ 9 (Num Lock)
+		|| (keyCode == 187 && event.shiftKey) // Shift 하고 +
+		|| (keyCode == 107) // + (Num Lock)
+		|| (keyCode == 190 && !event.shiftKey) // .
+		)) {
+		$(this).val(value);
+		event.returnValue = false;
+	}
+});
 $(document).on("keyup", "[data-valid-type=alphaNumeric]", function() { $(this).val($(this).val().replace(/[^a-zA-Z0-9]/gi, "")); });
 $(document).on("keyup", "[data-valid-type=date]", function() { $(this).val($(this).val().replace(/[^0-9\/]/gi,"")); });
 $(document).on("keyup", "[data-valid-type=calendar]", function() { $(this).val($(this).val().replace(/[^0-9\/]/gi,"")); });