Bläddra i källkod

브랜드관리 수정

gagamel 5 år sedan
förälder
incheckning
103713edb3

+ 16 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaBusinessDao.java

@@ -114,6 +114,22 @@ public interface TsaBusinessDao {
 	 */
 	void saveBrandSite(SiteBrand siteBrand);
 
+	/**
+	 * 브랜드 등록
+	 * @param brand - 브랜드 정보
+	 * @author gagamel
+	 * @since 2020. 11. 5
+	 */
+	void createBrand(Brand brand);
+
+	/**
+	 * 브랜드 수정
+	 * @param brand - 브랜드 정보
+	 * @author gagamel
+	 * @since 2020. 11. 5
+	 */
+	void updateBrand(Brand brand);
+
 	/**
 	 * 출고처관리 저장
 	 * @param delvLoc - 출고처 정보

+ 15 - 0
style24.admin/src/main/java/com/style24/admin/biz/service/TsaBusinessService.java

@@ -164,6 +164,21 @@ public class TsaBusinessService {
 		}
 	}
 
+	/**
+	 * 브랜드 등록/수정
+	 * @param brand - 브랜드 정보
+	 * @author gagamel
+	 * @since 2020. 11. 5
+	 */
+	@Transactional("shopTxnManager")
+	public void saveBrand(Brand brand) {
+		if (brand.getMode().equals("N")) { // 신규
+			businessDao.createBrand(brand);
+		} else { // 수정
+			businessDao.updateBrand(brand);
+		}
+	}
+
 	/**
 	 * 판매매장 목록
 	 * @param sellStore - 판매매장 정보

+ 18 - 24
style24.admin/src/main/java/com/style24/admin/biz/web/TsaBusinessController.java

@@ -18,6 +18,7 @@ import com.style24.admin.biz.service.TsaRendererService;
 import com.style24.admin.support.controller.TsaBaseController;
 import com.style24.admin.support.security.session.TsaSession;
 import com.style24.core.biz.service.TscEnvsetService;
+import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.Aflink;
 import com.style24.persistence.domain.Brand;
@@ -181,17 +182,8 @@ public class TsaBusinessController extends TsaBaseController {
 		// 사이트
 		mav.addObject("siteList", rendererService.getAvailCommonCodeList("G000"));
 
-//		// 포인트 정책
-//		Brand brand = new Brand();
-//		brand.setSelfGoodsPcPntRate10(cenvsetService.getSelfGoodsPcPointRate10("10"));
-//		brand.setSelfGoodsPcPntRate20(cenvsetService.getSelfGoodsPcPointRate20("10"));
-//		brand.setSelfGoodsMobPntRate10(cenvsetService.getSelfGoodsMobPointRate10("10"));
-//		brand.setSelfGoodsMobPntRate20(cenvsetService.getSelfGoodsMobPointRate20("10"));
-//		brand.setEntrGoodsPcPntRate10(cenvsetService.getEntrGoodsPcPointRate10("10"));
-//		brand.setEntrGoodsPcPntRate20(cenvsetService.getEntrGoodsPcPointRate20("10"));
-//		brand.setEntrGoodsMobPntRate10(cenvsetService.getEntrGoodsMobPointRate10("10"));
-//		brand.setEntrGoodsMobPntRate20(cenvsetService.getEntrGoodsMobPointRate20("10"));
-//		mav.addObject("brand", brand);
+		// 구매적립포인트율
+		mav.addObject("pntInfo", cenvsetService.getEnvset(TscConstants.Site.STYLE24.value(), "C15"));
 
 		mav.setViewName("business/BrandForm");
 
@@ -305,19 +297,21 @@ public class TsaBusinessController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 
-//	/**
-//	 * 브랜드 등록/수정 처리
-//	 * @param brand - 브랜드 정보
-//	 * @return
-//	 * @author gagamel
-//	 * @since 2020. 11. 4
-//	 */
-//	@PostMapping("/brand/save")
-//	@ResponseBody
-//	public GagaResponse saveBrand(@RequestBody Brand brand) {
-//		businessService.saveBrand(brand);
-//		return super.ok(message.getMessage("SUCC_0001"));
-//	}
+	/**
+	 * 브랜드 등록/수정 처리
+	 * @param brand - 브랜드 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 5
+	 */
+	@PostMapping("/brand/save")
+	@ResponseBody
+	public GagaResponse saveBrand(@RequestBody Brand brand) {
+		brand.setRegNo(TsaSession.getInfo().getUserNo());
+		brand.setUpdNo(TsaSession.getInfo().getUserNo());
+		businessService.saveBrand(brand);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
 
 	/**
 	 * 판매매장관리 화면

+ 4 - 4
style24.admin/src/main/java/com/style24/admin/biz/web/TsaRendererController.java

@@ -32,15 +32,15 @@ public class TsaRendererController extends TsaBaseController {
 
 	/**
 	 * 공급업체 목록
-	 * @param selfYn - 자사여부(Y:자사브랜드, N:입점브랜드)
+	 * @param brandGb - 브랜드구분(S:자사브랜드, E:입점브랜드)
 	 * @return
 	 * @author gagamel
 	 * @since 2019. 11. 4
 	 */
-	@GetMapping("/supply/company/list/{selfYn}")
+	@GetMapping("/supply/company/list/{brandGb}")
 	@ResponseBody
-	public Collection<CommonCode> getSupplyCompanyList(@PathVariable String selfYn) {
-		return selfYn.equals("Y") ? rendererService.getSelfSupplyCompanyList() : rendererService.getEntrSupplyCompanyList();
+	public Collection<CommonCode> getSupplyCompanyList(@PathVariable String brandGb) {
+		return brandGb.equals("S") ? rendererService.getSelfSupplyCompanyList() : rendererService.getEntrSupplyCompanyList();
 	}
 
 	/**

+ 0 - 3
style24.admin/src/main/java/com/style24/admin/support/env/TsaConstants.java

@@ -8,9 +8,6 @@ package com.style24.admin.support.env;
  */
 public class TsaConstants {
 
-	// 사이트코드
-	public static final String SITE_CD = "10";
-
 	public static final String EXCEL_FOOTER_TITLE = "Copyright(c) 2020 STYLE24, All rights reserved.";
 
 	// 공지유형

+ 2 - 56
style24.admin/src/main/java/com/style24/persistence/domain/Brand.java

@@ -14,13 +14,7 @@ import lombok.Data;
 @Data
 public class Brand extends TscBaseDomain {
 
-//	//HTML
-//	private String cpnId;		//쿠폰ID
-//	private String cpnType;		//쿠폰유형
-//	private String cpnApplyYn;	//쿠폰적용여부
-//	private String refVal;		//관련값(쿠폰유형이 "10:상품쿠폰"일 때는 상품코드, "11:브랜드쿠폰"일 때는 브랜드코드, "12:카테고리쿠폰"일 때는 카테고리코드)
-//	private String delYn;		//삭제여부
-
+	private String brandGb;			// 브랜드구분
 	private String brandCd;			// 브랜드코드
 	private String brandEnm;		// 브랜드영문명
 	private String brandKnm;		// 브랜드한글명
@@ -43,54 +37,6 @@ public class Brand extends TscBaseDomain {
 	private String useYn;			// 사용여부(Y:사용)
 
 	// 검색조건
-	private String searchTxt;	// 검색어
-
-	private float selfGoodsPcPntRate10;		// 자사상품PC포인트(정상)
-	private float selfGoodsPcPntRate20;		// 자사상품PC포인트(이월)
-	private float selfGoodsMobPntRate10;	// 자사상품모바일포인트(정상)
-	private float selfGoodsMobPntRate20;	// 자사상품모바일포인트(이월)
-	private float entrGoodsPcPntRate10;		// 입점상품PC포인트(정상)
-	private float entrGoodsPcPntRate20;		// 입점상품PC포인트(이월)
-	private float entrGoodsMobPntRate10;	// 입점상품모바일포인트(정상)
-	private float entrGoodsMobPntRate20;	// 입점상품모바일포인트(이월)
-
-//	//TB_SUPPLY_COMPANY
-//	private String supplyCompCd; /*공급업체코드*/
-//	private String supplyCompNm; /*공급업체명*/
-//	private String bizGb; /*사업자구분(C:법인, P:개인)*/
-//	private String bizNo; /*사업자등록번호*/
-//	private String bizKind; /*업종*/
-//	private String bizType; /*업태*/
-//	private String ownerNm; /*대표자명*/
-//	private String bizZipcode; /*사업장우편번호*/
-//	private String bizBaseAddr; /*사업장기본주소*/
-//	private String bizDtlAddr; /*사업장상세주소*/
-//	private String mainTelno; /*대표전화번호*/
-//	private String mainFaxno; /*대표팩스번호*/
-//	private String homepageUrl; /*홈페이지URL*/
-//	private String selfYn; /*자사여부(Y:자사, N:입점)*/
-//	private String supplyStat; /*입점상태(공통코드G010)*/
-//	private String settleDay; /*정산일(매월)*/
-//	private String bankNm; /*은행명*/
-//	private String accountNo; /*계좌번호*/
-//	private String depositorNm; /*예금주명*/
-//	private String remarks; /*비고*/
-//	private String useYn; /*사용여부(Y:사용)*/
-//
-//	//TB_DELIVERY_LOC
-//	private String delvLocClsf; /*출고처분류(공통코드G024)*/
-//	private String delvAssignOrd; /*출고지정순서(출고처유형이 "21:직송매장"일 때만 사용)*/
-//	private String delvAssignGrade; /*출고지정등급(출고처유형이 "21:직송매장"일 때만 사용)*/
-//	private String delvPossibQty; /*출고가능수량(출고처유형이 "21:직송매장"일 때만 사용)*/
-//	private String delvFeeRate; /*출고수수료율*/
-//	private String delvLocPostNo; /*출고처우편번호*/
-//	private String delvLocBaseAddr; /*출고처기본주소*/
-//	private String delvLocDtlAddr; /*출고처상세주소*/
-//	private String rtnLocPostNo; /*반품처우편번호*/
-//	private String rtnLocBaseAddr; /*반품처기본주소*/
-//	private String rtnLocDtlAddr; /*반품처상세주소*/
-//	private String rtnLocTelno; /*반품처전화번호*/
-//	private String rtnLocNm; /*반품처명*/
-//	private String invoicePrintType; /*송장출력형태(공통코드G025)*/
+	private String searchTxt;		// 검색어
 
 }

+ 111 - 21
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaBusiness.xml

@@ -98,7 +98,7 @@
 		     , UPD_DT
 		)
 		VALUES (
-		       (SELECT CONCAT('S',LPAD(SUBSTRING(MAX(SUPPLY_COMP_CD),2) + 1,4,'0'))
+		       (SELECT CONCAT('S',IFNULL(LPAD(SUBSTRING(MAX(SUPPLY_COMP_CD),2) + 1,4,'0'),'0000'))
 		        FROM   TB_SUPPLY_COMPANY Z
 		        WHERE  SUPPLY_COMP_CD LIKE 'S%'
 		       )
@@ -311,26 +311,29 @@
 	<!-- 브랜드 목록 -->
 	<select id="getBrandList" parameterType="Brand" resultType="Brand">
 		/* TsaBusiness.getBrandList */
-		SELECT A.BRAND_CD        /*브랜드코드*/
-		     , A.BRAND_ENM       /*브랜드영문명*/
-		     , A.BRAND_KNM       /*브랜드한글명*/
-		     , A.BRAND_GRP_NM    /*브랜드그룹명*/
-		     , A.DISTRIBUTION_GB /*유통구분*/
-		     , A.SUPPLY_COMP_CD  /*업체코드*/
-		     , B.SUPPLY_COMP_NM  /*업체명*/
-		     , A.DELV_LOC_CD     /*출고처코드*/
-		     , C.DELV_LOC_NM     /*출고처명*/
-		     , A.ERP_BRAND_CD    /*ERP브랜드코드*/
-		     , A.SELF_YN         /*자사여부*/
-		     , A.DELV_FEE        /*기본배송비*/
-		     , A.MIN_ORD_AMT     /*무료배송비기준*/
-		     , A.SELL_FEE_RATE   /*판매수수료율*/
-		     , A.USE_YN          /*사용여부*/
-		     , A.PNT_PRATE10     /*포인트적립율(PC)*/
-		     , A.PNT_MRATE10     /*포인트적립율(모바일)*/
-		     , A.PNT_PRATE20     /*포인트적립율(PC)*/
-		     , A.PNT_MRATE20     /*포인트적립율(모바일)*/
-		     , A.DISP_ORD        /*표시순서*/
+		SELECT CASE WHEN A.SELF_YN = 'Y' THEN 'S'
+		            ELSE 'N'
+		       END               AS BRAND_GB /*브랜드구분*/
+		     , A.BRAND_CD                    /*브랜드코드*/
+		     , A.BRAND_ENM                   /*브랜드영문명*/
+		     , A.BRAND_KNM                   /*브랜드한글명*/
+		     , A.BRAND_GRP_NM                /*브랜드그룹명*/
+		     , A.DISTRIBUTION_GB             /*유통구분*/
+		     , A.SUPPLY_COMP_CD              /*업체코드*/
+		     , B.SUPPLY_COMP_NM              /*업체명*/
+		     , A.DELV_LOC_CD                 /*출고처코드*/
+		     , C.DELV_LOC_NM                 /*출고처명*/
+		     , A.ERP_BRAND_CD                /*ERP브랜드코드*/
+		     , A.SELF_YN                     /*자사여부*/
+		     , A.DELV_FEE                    /*기본배송비*/
+		     , A.MIN_ORD_AMT                 /*무료배송비기준*/
+		     , A.SELL_FEE_RATE               /*판매수수료율*/
+		     , A.USE_YN                      /*사용여부*/
+		     , A.PNT_PRATE10                 /*포인트적립율(PC)*/
+		     , A.PNT_MRATE10                 /*포인트적립율(모바일)*/
+		     , A.PNT_PRATE20                 /*포인트적립율(PC)*/
+		     , A.PNT_MRATE20                 /*포인트적립율(모바일)*/
+		     , A.DISP_ORD                    /*표시순서*/
 		FROM   TB_BRAND A
 		INNER JOIN TB_SUPPLY_COMPANY B ON A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD
 		LEFT OUTER JOIN TB_DELIVERY_LOC C ON A.DELV_LOC_CD = C.DELV_LOC_CD
@@ -467,6 +470,93 @@
 		     , UPD_DT = NOW()
 	</insert>
 	
+	<!-- 브랜드 등록 -->
+	<insert id="createBrand" parameterType="Brand">
+		/* TsaBusiness.createBrand */
+		INSERT INTO TB_BRAND (
+		       BRAND_CD
+		     , BRAND_ENM
+		     , BRAND_KNM
+		     , BRAND_GRP_NM
+		     , SUPPLY_COMP_CD
+		     , DISTRIBUTION_GB
+		     , SELF_YN
+		     , ERP_BRAND_CD
+		     , MIN_ORD_AMT
+		     , DELV_FEE
+		     , DELV_LOC_CD
+		     , SELL_FEE_RATE
+		     , PNT_PRATE10
+		     , PNT_MRATE10
+		     , PNT_PRATE20
+		     , PNT_MRATE20
+		     , DISP_ORD
+		     , USE_YN
+		     , DISP_ORD
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		VALUES (
+		       (SELECT CONCAT(#{brandGb},IFNULL(LPAD(CAST(SUBSTRING(MAX(BRAND_CD),2) AS UNSIGNED) + 1,3,'0'),'000'))
+		        FROM   TB_BRAND Z
+		        WHERE  BRAND_CD LIKE CONCAT(#{brandGb},'%')
+		       )
+		     , #{brandEnm}
+		     , #{brandKnm}
+		     , #{brandGrpNm}
+		     , #{supplyCompCd}
+		     , #{distributionGb}
+		     , CASE WHEN #{distributionGb} IN ('G065_10','G065_11','G065_12') THEN 'Y'
+		            ELSE 'N'
+		       END
+		     , #{erpBrandCd}
+		     , IFNULL(#{minOrdAmt},0)
+		     , IFNULL(#{delvFee},0)
+		     , #{delvLocCd}
+		     , IFNULL(#{sellFeeRate},0)
+		     , IFNULL(#{pntPrate10},0)
+		     , IFNULL(#{pntMrate10},0)
+		     , IFNULL(#{pntPrate20},0)
+		     , IFNULL(#{pntMrate20},0)
+		     , #{dispOrd}
+		     , #{useYn}
+		     , #{regNo}
+		     , NOW()
+		     , #{updNo}
+		     , NOW()
+		)
+	</insert>
+	
+	<!-- 브랜드 수정 -->
+	<insert id="updateBrand" parameterType="Brand">
+		/* TsaBusiness.updateBrand */
+		UPDATE TB_BRAND
+		SET    BRAND_ENM = #{brandEnm}
+		     , BRAND_KNM = #{brandKnm}
+		     , BRAND_GRP_NM = #{brandGrpNm}
+		     , SUPPLY_COMP_CD = #{supplyCompCd}
+		     , DISTRIBUTION_GB = #{distributionGb}
+		     , SELF_YN = CASE WHEN #{distributionGb} IN ('G065_10','G065_11','G065_12') THEN 'Y'
+		                      ELSE 'N'
+		                 END
+		     , ERP_BRAND_CD = #{erpBrandCd}
+		     , MIN_ORD_AMT = IFNULL(#{minOrdAmt},0)
+		     , DELV_FEE = IFNULL(#{delvFee},0)
+		     , DELV_LOC_CD = #{delvLocCd}
+		     , SELL_FEE_RATE = IFNULL(#{sellFeeRate},0)
+		     , PNT_PRATE10 = IFNULL(#{pntPrate10},0)
+		     , PNT_MRATE10 = IFNULL(#{pntMrate10},0)
+		     , PNT_PRATE20 = IFNULL(#{pntPrate20},0)
+		     , PNT_MRATE20 = IFNULL(#{pntMrate20},0)
+		     , DISP_ORD = #{dispOrd}
+		     , USE_YN = #{useYn}
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
+		WHERE  BRAND_CD = #{brandCd}
+	</insert>
+	
 	<!-- 판매매장 목록  -->
 	<select id="getSellStoreList" parameterType="SellStore" resultType="SellStore">
 		/* TsaBusiness.getSellStoreList */

+ 91 - 221
style24.admin/src/main/webapp/WEB-INF/views/business/BrandForm.html

@@ -96,7 +96,7 @@
 		<!-- 등록/수정 -->
 		<div class="panelStyle">
 			<form id="detailForm" name="detailForm" action="#" th:action="@{'/business/brand/save'}">
-				<input type="hidden" name="mode" value="C"/>
+				<input type="hidden" name="mode" value="N"/>
 				
 				<table class="frmStyle" aria-describedby="등록/수정 폼">
 					<colgroup>
@@ -109,10 +109,10 @@
 						<th>브랜드코드</th>
 						<td>
 							<select name="brandGb">
-								<option value="Y">자사브랜드</option>
-								<option value="N">입점브랜드</option>
+								<option value="S">자사브랜드</option>
+								<option value="E">입점브랜드</option>
 							</select>
-							<input type="text" class="w100" name="brandCd" placeholder="자동생성" maxlength="5" required="required" data-valid-name="브랜드코드" disabled="disabled"/>
+							<input type="text" class="w100" name="brandCd" placeholder="자동생성" maxlength="5" readonly="readonly"/>
 							<span class="marL10 cRed"><i class="fa fa-info-circle" aria-hidden="true"></i> 자사브랜드인 경우 먼저 WMS에 등록되어 있는지를 확인해야 합니다.</span>
 						</td>
 						<th>브랜드명<i class="required" title="필수"></i></th>
@@ -151,46 +151,46 @@
 					<tr>
 						<th>기본배송비<i class="required" title="필수"></i></th>
 						<td>
-							<input type="text" class="w100 aR" name="delvFee" maxlength="6" required="required" data-valid-name="기본배송비" data-valid-type="integer"/>원
+							<input type="text" class="w100 aR" name="delvFee" value="0" maxlength="6" required="required" data-valid-name="기본배송비" data-valid-type="integer"/>원
 							<span class="marL10 cRed"><i class="fa fa-info-circle" aria-hidden="true"></i> 변경된 배송비는 이후 등록된 상품부터 적용됩니다.</span>
 						</td>
 						<th>무료배송기준<i class="required" title="필수"></i></th>
 						<td>
-							<input type="text" class="w100 aR" name="minOrdAmt" maxlength="7" required="required" data-valid-name="무료배송기준" data-valid-type="integer"/>원 이상 구매시
+							<input type="text" class="w100 aR" name="minOrdAmt" value="0" maxlength="7" required="required" data-valid-name="무료배송기준" data-valid-type="integer"/>원 이상 구매시
 						</td>
 					</tr>
 					<tr>
 						<th>포인트적립율(PC정상)<i class="required" title="필수"></i></th>
 						<td>
-							<input type="text" class="w100 aR" name="pntPrate10" maxlength="3" required="required" data-valid-name="포인트적립율(PC정상)" data-valid-type="numeric"/>%
+							<input type="text" class="w100 aR" name="pntPrate10" maxlength="3" required="required" data-valid-name="포인트적립율(PC정상)" data-valid-type="real"/>%
 						</td>
 						<th>포인트적립율(모바일정상)<i class="required" title="필수"></i></th>
 						<td>
-							<input type="text" class="w100 aR" name="pntMrate10" maxlength="3" required="required" data-valid-name="포인트적립율(모바일정상)" data-valid-type="numeric"/>%
+							<input type="text" class="w100 aR" name="pntMrate10" maxlength="3" required="required" data-valid-name="포인트적립율(모바일정상)" data-valid-type="real"/>%
 						</td>
 					</tr>
 					<tr>
 						<th>포인트적립율(PC이월)<i class="required" title="필수"></i></th>
 						<td>
-							<input type="text" class="w100 aR" name="pntPrate20" maxlength="3" required="required" data-valid-name="포인트적립율(PC이월)" data-valid-type="numeric"/>%
+							<input type="text" class="w100 aR" name="pntPrate20" maxlength="3" required="required" data-valid-name="포인트적립율(PC이월)" data-valid-type="real"/>%
 						</td>
 						<th>포인트적립율(모바일이월)<i class="required" title="필수"></i></th>
 						<td>
-							<input type="text" class="w100 aR" name="pntMrate20" maxlength="3" required="required" data-valid-name="포인트적립율(모바일이월)" data-valid-type="numeric"/>%
+							<input type="text" class="w100 aR" name="pntMrate20" maxlength="3" required="required" data-valid-name="포인트적립율(모바일이월)" data-valid-type="real"/>%
 						</td>
 					</tr>
-					<tr id="sellFeeRateTr" class="off">
+					<tr>
 						<th>판매수수료율<i class="required" title="필수"></i></th>
 						<td colspan="3">
-							<input type="text" class="w100 aR" name="sellFeeRate" maxlength="3" required="required" data-valid-name="판매수수료율" data-valid-type="numeric"/>%
+							<input type="text" class="w100 aR" name="sellFeeRate" value="0" maxlength="3" required="required" data-valid-name="판매수수료율" data-valid-type="real"/>%
 						</td>
 					</tr>
 					<tr id="brandMdArea" class="off">
 						<th>담당MD</th>
 						<td colspan="3" id="tdBrandMd">
 							<div>
-								<input type="text" class="w100" name="mdNm" onkeypress="if( event.keyCode==13 ){$('#mdIdx').val(0); cfnOpenMdListPopup('fnMdSearchCallback', $(this).val());}"/>
-								<button type="button" class="btn btn-info btn-lg" id="btnSearchBrandMd" onclick="$('#mdIdx').val(0); cfnOpenMdListPopup('fnMdSearchCallback');">조회</button>
+								<input type="text" class="w100" name="mdNm" onkeypress="if( event.keyCode==13 ){$('#mdIdx').val(0); cfnOpenMdListPopup('fnSetMdInfo', $(this).val());}"/>
+								<button type="button" class="btn icn" id="btnSearchBrandMd" onclick="$('#mdIdx').val(0); cfnOpenMdListPopup('fnSetMdInfo');"><i class="fa fa-search"></i></button>
 								<input type="text" class="w100" name="mdNo" readonly="readonly"/>
 								<span class="marL10 cBlue"><i class="fa fa-info-circle" aria-hidden="true"></i> 정상/이월 모두 관리합니다.</span>
 								<button type="button" class="btn btn-base btn-lg" id="btnAddBrandMd">추가</button>
@@ -200,24 +200,12 @@
 							</div>
 						</td>
 					</tr>
-<!-- 					<tr> -->
-<!-- 						<th>브랜드이미지</th> -->
-<!-- 						<td colspan="3"> -->
-<!-- 							<div class="uFile w300"> -->
-<!-- 								<input id="file" name="file" type="file" class="uFileInput w300"/> -->
-<!-- 								<label for="file" class="uFileLabel">파일선택</label> -->
-<!-- 								<input type="hidden" name="imgFileNm" id="imgFileNm"/> -->
-<!-- 							</div> -->
-<!-- 							<input type="hidden" name="uploadDefaultUrl" id="uploadDefaultUrl" th:value="${@environment.getProperty('upload.default.view') + '/display/'}"/> -->
-<!-- 							<div id="imgView" class="off"> -->
-<!-- 								<img id="bannerPreViewUrl" src="" style="height:100px"/> -->
-<!-- 							</div> -->
-<!-- 						</td> -->
-<!-- 					</tr> -->
 					<tr id="siteArea" class="off">
 						<th>전시사이트</th>
 						<td colspan="3">
-							<label class="chkBox" th:if="${siteList}" th:each="oneData, status : ${siteList}" ><input type="checkbox" name="siteCd" th:value="${oneData.cd}" th:text="${oneData.cdNm}"/></label>
+							<label class="chkBox" th:if="${siteList}" th:each="oneData, status : ${siteList}" >
+								<input type="checkbox" name="siteCd" th:value="${oneData.cd}" th:text="${oneData.cdNm}"/>
+							</label>
 							<button type="button" class="btn btn-success btn-lg" id="btnSiteBrandSave">전시사이트 수정</button>
 						</td>
 					</tr>
@@ -254,6 +242,7 @@
 	let distributionGbList = gagajf.convertToArray([[${distributionGbList}]]);
 	
 	let columnDefs = [
+		{headerName: "브랜드구분", field: "brandGb", width: 80, cellClass: 'text-center', hide: true},
 		{
 			headerName: "브랜드코드", field: "brandCd", width: 100, cellClass: 'text-center',
 			cellRenderer: function(params) {
@@ -307,6 +296,8 @@
 		if (event.colDef.field != 'brandCd')
 			return;
 		
+		$("#detailForm input[name=mode]").val("U");
+		$("#detailForm select[name=brandGb]").val(event.data.brandGb);
 		$("#detailForm select[name=brandGb]").attr("disabled", "disabled");
 		$("#detailForm input[name=brandCd]").val(event.data.brandCd);
 		$("#detailForm input[name=brandEnm]").val(event.data.brandEnm);
@@ -315,7 +306,20 @@
 		$("#detailForm input[name=erpBrandCd]").val(event.data.erpBrandCd);
 		$("#detailForm select[name=supplyCompCd]").val(event.data.supplyCompCd);
 		$("#detailForm select[name=distributionGb]").val(event.data.distributionGb);
-		$("#detailForm select[name=delvLocCd]").val(event.data.delvLocCd);
+		
+		// 출고처 정보
+		$.getJSON('/renderer/delvloc/list/' + event.data.supplyCompCd
+			, function(delvLocList) {
+				$('#detailForm select[name=delvLocCd]').empty().append('<option value="">[선택]</option>');
+				$.each(delvLocList, function(idx, item) {
+					var optionHtml = '<option value="' + item.cd + '">[' + item.cd + '] '+ item.cdNm + '</option>\n';
+					$('#detailForm select[name=delvLocCd]').append(optionHtml);
+				});
+				
+				$("#detailForm select[name=delvLocCd]").val(event.data.delvLocCd);
+			}
+		);
+		
 		$("#detailForm input[name=delvFee]").val(Number(event.data.delvFee).addComma());
 		$("#detailForm input[name=minOrdAmt]").val(Number(event.data.minOrdAmt).addComma());
 		$("#detailForm input[name=sellFeeRate]").val(event.data.sellFeeRate);
@@ -330,19 +334,6 @@
 		$("#brandMdArea").removeClass("off").addClass("on");
 		fnGetBrandMdList(event.data.brandCd);
 		
-		$("#detailForm input[name=mode]").val("U");
-		
-// 		// 브랜드이미지 영역 노출
-// 		var brandImg = event.data.brandImg;
-// 		if (!gagajf.isNull(brandImg)) {
-// 			$("#imgFileNm").val(brandImg);
-// 			$("#bannerPreViewUrl").attr('src', $("#uploadDefaultUrl").val()+brandImg);
-// 			$("#imgView").removeClass("off").addClass("on");
-// 		} else {
-// 			$("#imgFileNm").val('');
-// 		}
-// 		$('#detailForm input[name=file]').closest('div').find('label').text('파일선택');
-		
 		// 전시사이트 영역 노출
 		$("#siteArea").removeClass("off").addClass("on");
 		fnGetBrandSiteList(event.data.brandCd);
@@ -354,8 +345,28 @@
 		gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm');
 	});
 	
+	// 구매포인트적립율 설정
+	let fnSetPntRate = function(brandGb) {
+		let pntInfo = [[${pntInfo}]];
+		
+		if (brandGb == 'S') { // 자사브랜드
+			$('#detailForm input[name=pntPrate10]').val(gagajf.isNull(pntInfo) ? 0 : pntInfo.strSetVal1);
+			$('#detailForm input[name=pntMrate10]').val(gagajf.isNull(pntInfo) ? 0 : pntInfo.strSetVal2);
+			$('#detailForm input[name=pntPrate20]').val(gagajf.isNull(pntInfo) ? 0 : pntInfo.strSetVal3);
+			$('#detailForm input[name=pntMrate20]').val(gagajf.isNull(pntInfo) ? 0 : pntInfo.strSetVal4);
+		} else { // 입점브랜드
+			$('#detailForm input[name=pntPrate10]').val(gagajf.isNull(pntInfo) ? 0 : pntInfo.strSetVal5);
+			$('#detailForm input[name=pntMrate10]').val(gagajf.isNull(pntInfo) ? 0 : pntInfo.strSetVal6);
+			$('#detailForm input[name=pntPrate20]').val(gagajf.isNull(pntInfo) ? 0 : pntInfo.strSetVal7);
+			$('#detailForm input[name=pntMrate20]').val(gagajf.isNull(pntInfo) ? 0 : pntInfo.strSetVal8);
+		}
+	}
+	
 	// 브랜드구분 변경 시
 	$('#detailForm select[name=brandGb]').on('change', function() {
+		// 구매포인트적립율 설정
+		fnSetPntRate($(this).val());
+		
 		$.getJSON('/renderer/supply/company/list/' + $(this).val()
 			, function(result, status) {
 				$('#detailForm select[name=supplyCompCd]').empty().append('<option value="">[선택]</option>');
@@ -370,6 +381,7 @@
 	// 공급업체 변경 시
 	$('#detailForm select[name=supplyCompCd]').on('change', function() {
 		if (gagajf.isNull($(this).val())) {
+			$('#detailForm select[name=delvLocCd]').empty().append('<option value="">[선택]</option>');
 			return;
 		}
 		
@@ -429,80 +441,30 @@
 	// 브랜드 노출사이트 목록
 	var fnGetBrandSiteList = function(brandCd) {
 		$.getJSON('/business/brand/site/list/' + brandCd
-			, function(result, status) {
-				$("#detailForm input[type=checkbox]").removeClass("checked");
-				$("#detailForm input[type=checkbox]").attr("checked", false);
-				result.forEach(function(item) {
-					$("#siteArea label").each(function() {
-						if (item.siteCd == $(this).find("input:checkbox[name=siteCd]").val()) {
-							$(this).find("input:checkbox[name=siteCd]").attr("checked", true);
+			, function(result) {
+				// 전시사이트 체크박스 체크 제거
+				$('#detailForm input:checkbox[name=siteCd]').prop('checked', false);
+				
+				// 체크박스 개수
+				var chkboxCnt = $('#detailForm input:checkbox[name=siteCd]').length;
+	
+				// 데이터 개수
+				var dataCnt = result.length;
+	
+				if (dataCnt > 0) {
+					for (var i = 0; i < chkboxCnt; i++) {
+						for (var j = 0; j < dataCnt; j++){
+							var data = result[j].siteCd;
+							if ($('#detailForm input:checkbox[name=siteCd]').eq(i).val() == data) {
+								$('#detailForm input:checkbox[name=siteCd]').eq(i).prop('checked', true);
+							}
 						}
-					});
-				});
-			
-				$("#detailForm input[type=checkbox][checked]").parent("label").addClass("checked");
+					}
+				}
 		});
 	}
 	
-	// 업체 변경 정보
-	var fnChangeSupplyComp = function(brandGb){
-// 		let pntRate = [[${pntRate}]];
-// 		$("#detailForm select[name=delvLocCd]").html('<option value="">[선택]</option>');
-// 		$("#detailForm select[name=delvLocCd]").val('');
-// 		var supplyCompCd = $("#supplyCompCdTd" + brandGb + " select[name=supplyCompCd]").val();
-// 		var formId = '#detailForm';
-// 		if(typeof supplyCompCd!='undefined' && supplyCompCd!=''){
-// 			if(brandGb=="S"){
-// 				$("#detailForm input[name=pntPrate10]").val(policy.sgoodsPntPrate10);
-// 				$("#detailForm input[name=pntMrate10]").val(policy.sgoodsPntMrate10);
-// 				$("#detailForm input[name=pntPrate20]").val(policy.sgoodsPntPrate20);
-// 				$("#detailForm input[name=pntMrate20]").val(policy.sgoodsPntMrate20);
-// 			}else if(brandGb=="E"){
-// 				$("#detailForm input[name=pntPrate10]").val(policy.egoodsPntPrate10);
-// 				$("#detailForm input[name=pntMrate10]").val(policy.egoodsPntMrate10);
-// 				$("#detailForm input[name=pntPrate20]").val(policy.egoodsPntPrate20);
-// 				$("#detailForm input[name=pntMrate20]").val(policy.egoodsPntMrate20);
-// 			}
-// 			var data = {'supplyCompCd' : supplyCompCd};
-// 			var jsonData = JSON.stringify(data);
-// 			gagajf.ajaxJsonSubmit('/business/supply/company/list', jsonData, fnSupplyCompCallback);
-// 		}else{
-// 			$("#detailForm input[name=delvFee]").val('');
-// 			$("#detailForm input[name=minOrdAmt]").val('');
-// 			$("#detailForm input[name=sellFeeRate]").val('');
-// 			$("#detailForm input[name=pntPrate10]").val('');
-// 			$("#detailForm input[name=pntMrate10]").val('');
-// 			$("#detailForm input[name=pntPrate20]").val('');
-// 			$("#detailForm input[name=pntMrate20]").val('');
-// 		}
-	}
-	
-// 	//이미지 클릭시 미리보기
-// 	$("#bannerPreViewUrl").click(function(){
-// 		cfnOpenImagePreViewPopup('bannerPreimgView',$('#bannerPreViewUrl').attr('src'));
-// 	});
-	
-// 	//첨부파일 등록
-// 	$('#detailForm input[name=file]').on('change', function() {
-// 		var file = this.files[0];
-// 		file.name = 'test';
-// 		if (typeof(file) == 'undefined'){
-// 			return;
-// 		}
-		
-// 		gagajf.ajaxFileUpload('/common/file/upload?subDir=/display'
-// 				, file
-// 				, function(result) {
-// 					$('#detailForm input[name=imgFileNm]').val(result.newFileName);
-// 					$("#bannerPreViewUrl").attr('src', $("#uploadDefaultUrl").val()+result.newFileName);
-// 					$("#imgView").removeClass("off").addClass("on");
-// 					uifnFitGrid();
-// 				}
-// 				, 'image'
-// 		);
-// 	});
-	
-	var fnMdSearchCallback = function(result) {
+	var fnSetMdInfo = function(result) {
 		var ind = $('#mdIdx').val();
 		$("#tdBrandMd input[name=mdNo]").eq(ind).val(result.userNo);
 		$("#tdBrandMd input[name=mdNm]").eq(ind).val(result.userNm);
@@ -529,7 +491,7 @@
 			return false;
 		}
 		
-		mcxDialog.confirmC('담당MD를 수정하시겠습니까?', {
+		mcxDialog.confirm('담당MD를 수정하시겠습니까?', {
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
 			sureBtnClick: function() {
@@ -565,7 +527,7 @@
 			return false;
 		}
 		
-		mcxDialog.confirmC('전시될 사이트를 수정하시겠습니까?', {
+		mcxDialog.confirm('전시될 사이트를 수정하시겠습니까?', {
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
 			sureBtnClick: function() {
@@ -583,8 +545,8 @@
 	// 담당MD 태그
 	var getBrandMdTag = function(mdNo, mdNm) {
 		var tag = '<div>\n';
-		tag += '	<input type="text" class="w100" name="mdNm" value="' + mdNm + '" onkeypress="if (event.keyCode == 13) { $(\'#mdIdx\').val(' + i + '); cfnOpenMdListPopup(\'fnMdSearchCallback\', $(this).val());}"/>\n';
-		tag += '	<button type="button" class="btn btn-info btn-lg" id="btnSearchBrandMd" onclick="$(\'#mdIdx\').val(' + i + '); cfnOpenMdListPopup(\'fnMdSearchCallback\');">조회</button>\n';
+		tag += '	<input type="text" class="w100" name="mdNm" value="' + mdNm + '" onkeypress="if (event.keyCode == 13) { $(\'#mdIdx\').val(' + i + '); cfnOpenMdListPopup(\'fnSetMdInfo\', $(this).val());}"/>\n';
+		tag += '	<button type="button" class="btn icn" id="btnSearchBrandMd" onclick="$(\'#mdIdx\').val(' + i + '); cfnOpenMdListPopup(\'fnSetMdInfo\');"><i class="fa fa-search"></i></button>\n';
 		tag += '	<input type="text" class="w100" name="mdNo" value="' + mdNo + '" readonly="readonly"/>\n';
 		tag += '	<button type="button" class="btn icn" onclick="fnDeleteRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button>\n';
 		tag += '</div>\n';
@@ -609,127 +571,35 @@
 	// 신규 버튼 클릭
 	$("#btnNew").on("click", function() {
 		$("#detailForm")[0].reset();
-// 		$("#detailForm input[name=mode]").val("C");
+		$("#detailForm input[name=mode]").val("N");
 		$("#detailForm select[name=brandGb]").trigger('change');
 		$("#detailForm select[name=brandGb]").removeAttr("disabled");
 		$('#detailForm select[name=delvLocCd]').empty().append('<option value="">[선택]</option>');
 		
+		// 자사구매포인트적립율 설정
+		fnSetPntRate('Y');
+
 		// 브랜드담당MD 영역은 수정 시 노출
 		$("#brandMdArea").removeClass("on").addClass("off");
 		
-		// 브랜드이미지 영역은 수정 시 노출
-// 		$("#bannerPreViewUrl").attr('src', '');
-// 		$("#imgView").removeClass("on").addClass("off");
-// 		$("#imgFileNm").val('');
-// 		$('#detailForm input[name=file]').val('');
-// 		$('#detailForm input[name=file]').closest('div').find('label').text('파일선택');
-
 		// 전시사이트 영역은 수정 시 노출
 		$("#siteArea").removeClass("on").addClass("off");
 	});
 
 	// 저장
 	$("#btnSave").on("click", function() {
-		var formId = '#detailForm';
-		var brandGb = $("#detailForm input:radio[name=brandGb]:checked").val();
-		var brandEnm = $("#detailForm input[name=brandEnm]").val();
-		var brandCd = $("#detailForm input[name=brandCd]").val();
-		var erpBrandCd = $("#detailForm input[name=erpBrandCd]").val();
-		var brandKnm = $("#detailForm input[name=brandKnm]").val();
-		var brandGrpNm = $("#detailForm input[name=brandGrpNm]").val();
-		var supplyCompCd = $("#supplyCompCdTd" + brandGb + " select[name=supplyCompCd]").val();
-		var delvLocCd = $("#detailForm select[name=delvLocCd]").val();
-		var delvFee = $("#detailForm input[name=delvFee]").val().removeComma();
-		var minOrdAmt = $("#detailForm input[name=minOrdAmt]").val().removeComma();
-		var sellFeeRate = $("#detailForm input[name=sellFeeRate]").val();
-		var pntPrate10 = $("#detailForm input[name=pntPrate10]").val();
-		var pntMrate10 = $("#detailForm input[name=pntMrate10]").val();
-		var pntPrate20 = $("#detailForm input[name=pntPrate20]").val();
-		var pntMrate20 = $("#detailForm input[name=pntMrate20]").val();
-		var dispOrd = $("#detailForm input[name=dispOrd]").val();
-		var useYn = $("#detailForm input:radio[name=useYn]:checked").val();
-		var brandImg = $("#imgFileNm").val();
-		var mode = $("#detailForm input[name=mode]").val();
-		
-		if(brandEnm==''){
-			gagajf.alertMessage("#detailForm input[name=brandEnm]", 'input');
-			return;
-		}
-		if(brandGb=='S' && erpBrandCd==''){
-			gagajf.alertMessage("#detailForm input[name=erpBrandCd]", 'input');
-			return;
-		}
-		if(brandKnm==''){
-			gagajf.alertMessage("#detailForm input[name=brandKnm]", 'input');
-			return;
-		}
-		if(brandGrpNm==''){
-			gagajf.alertMessage("#detailForm input[name=brandGrpNm]", 'input');
-			return;
-		}
-		if(supplyCompCd==''){
-			gagajf.alertMessage("#supplyCompCdTd" + brandGb + " select[name=supplyCompCd]", 'select');
-			return;
-		}
-		if(delvFee==''){
-			gagajf.alertMessage("#detailForm input[name=delvFee]", 'input');
-			return;
-		}
-		if(minOrdAmt==''){
-			gagajf.alertMessage("#detailForm input[name=minOrdAmt]", 'input');
-			return;
-		}
-		if(brandGb!='S' && sellFeeRate==''){
-			gagajf.alertMessage("#detailForm input[name=sellFeeRate]", 'input');
-			return;
-		}
-		if(pntPrate10==''){
-			gagajf.alertMessage("#detailForm input[name=pntPrate10]", 'input');
-			return;
-		}
-		if(pntMrate10==''){
-			gagajf.alertMessage("#detailForm input[name=pntMrate10]", 'input');
-			return;
-		}
-		if(pntPrate20==''){
-			gagajf.alertMessage("#detailForm input[name=pntPrate20]", 'input');
-			return;
-		}
-		if(pntMrate20==''){
-			gagajf.alertMessage("#detailForm input[name=pntMrate20]", 'input');
-			return;
-		}
-		if(dispOrd==''){
-			gagajf.alertMessage("#detailForm input[name=dispOrd]", 'input');
-			return;
-		}
+		// 입력 값 체크
+		if (!gagajf.validation('#detailForm'))
+			return false;
 		
 		mcxDialog.confirm('저장하시겠습니까?', {
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
-			sureBtnClick: function(){
-				var data = {brandGb : brandGb
-						,brandEnm : brandEnm
-						,brandCd : brandCd
-						,erpBrandCd : erpBrandCd
-						,brandKnm : brandKnm
-						,brandGrpNm : brandGrpNm
-						,supplyCompCd : supplyCompCd
-						,delvLocCd : delvLocCd
-						,delvFee : delvFee
-						,minOrdAmt : minOrdAmt
-						,sellFeeRate : sellFeeRate
-						,pntPrate10 : pntPrate10
-						,pntMrate10 : pntMrate10
-						,pntPrate20 : pntPrate20
-						,pntMrate20 : pntMrate20
-						,dispOrd:dispOrd
-						,useYn : useYn
-						,brandImg : brandImg
-						,mode : mode
-				};
-				var jsonData = JSON.stringify(data);
-				gagajf.ajaxJsonSubmit($(formId).prop('action'), jsonData, fnSaveCallback);
+			sureBtnClick: function() {
+				gagajf.ajaxFormSubmit($('#detailForm').prop('action'), '#detailForm', function() {
+					$('#btnNew').trigger('click');
+					$('#btnSearch').trigger('click');
+				});
 			}
 		});
 	});

+ 44 - 16
style24.admin/src/main/webapp/WEB-INF/views/system/UserDetailForm.html

@@ -255,10 +255,14 @@
 		$.get('/system/user/id/' + $e.val()
 			, function(data) {
 				if (data > 0) {
-					mcxDialog.alert('이 ID는 이미 사용중입니다. 다른 ID를 입력해 주세요.');
-					isUnique = false;
-					$e.val('');
-					$e.focus();
+					mcxDialog.alertC('이 ID는 이미 사용중입니다. 다른 ID를 입력해 주세요.', {
+						sureBtnText: "확인",
+						sureBtnClick: function() {
+							isUnique = false;
+							$e.val('');
+							$e.focus();
+						}
+					});
 				} else {
 					mcxDialog.alert('이 ID는 사용 가능합니다.');
 					isUnique = true;
@@ -293,20 +297,32 @@
 		var passwdConfirm = $('#userDetailForm input[name=passwdConfirm]').val();
 		
 		if (gagajf.isNull(passwd)) {
-			mcxDialog.alert('비밀번호를 입력해 주세요.');
-			$('#userDetailForm input[name=passwd]').focus();
+			mcxDialog.alertC('비밀번호를 입력해 주세요.', {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$('#userDetailForm input[name=passwd]').focus();
+				}
+			});
 			return;
 		}
 		
 		if (gagajf.isNull(passwdConfirm)) {
-			mcxDialog.alert('비밀번호확인을 입력해 주세요.');
-			$('#userDetailForm input[name=passwdConfirm]').focus();
+			mcxDialog.alertC('비밀번호확인을 입력해 주세요.', {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$('#userDetailForm input[name=passwdConfirm]').focus();
+				}
+			});
 			return;
 		}
 		
 		if (passwd != passwdConfirm) {
-			mcxDialog.alert('비밀번호를 확인해주세요.');
-			$('#userDetailForm input[name=passwd]').focus();
+			mcxDialog.alertC('비밀번호를 확인해 주세요.', {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$('#userDetailForm input[name=passwdConfirm]').focus();
+				}
+			});
 			return;
 		}
 		
@@ -328,8 +344,12 @@
 		var email = $('#userDetailForm input[name=email]').val();
 		
 		if (gagajf.isNull(email)) {
-			mcxDialog.alert('이메일을 입력해 주세요.');
-			$('#userDetailForm input[name=email]').focus();
+			mcxDialog.alertC('이메일을 입력해 주세요.', {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$('#userDetailForm input[name=email]').focus();
+				}
+			});
 			return;
 		}
 		
@@ -391,16 +411,24 @@
 			}
 			
 			if ($(formId + ' input[name=passwd]').val() != $(formId + ' input[name=passwdConfirm]').val()) {
-				mcxDialog.alert('비밀번호와 비밀번호확인 값이 다릅니다.');
-				$(formId + ' input[name=passwdConfirm]').focus();
+				mcxDialog.alertC('비밀번호와 비밀번호확인 값이 다릅니다.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$(formId + ' input[name=passwdConfirm]').focus();
+					}
+				});
 				return;
 			}
 		}
 		
 		if ($(formId + ' input:checkbox[name=chkIpChkYn]').is(":checked")) {
 			if (gagajf.isNull($(formId + ' input[name=ipAddr]').val())) {
-				mcxDialog.alert('IP주소를 입력해 주세요.');
-				$(formId + ' input[name=ipAddr]').focus();
+				mcxDialog.alertC('IP주소를 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$(formId + ' input[name=ipAddr]').focus();
+					}
+				});
 				return;
 			}
 		}

+ 15 - 0
style24.core/src/main/java/com/style24/core/support/env/TscConstants.java

@@ -28,6 +28,21 @@ public class TscConstants {
 	// 프론트 URL
 	public static final String FRONT_URL = "www.style24.com";
 
+	// 사이트
+	public enum Site {
+		STYLE24("G000_10");
+
+		private String value;
+
+		private Site(String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+	}
+
 //	// 외부몰벤더ID
 //	public enum VendorId {
 //		PASTEL("V001"),