Просмотр исходного кода

브랜드관리 배송정책코드 관련 수정

eskim 5 лет назад
Родитель
Сommit
4856c4878c

+ 10 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaRendererDao.java

@@ -223,4 +223,14 @@ public interface TsaRendererDao {
 	 */
 	Collection<CommonCode> getColorGrpCdRgbList();
 
+	/**
+	 * 업체별 배송비정책 목록
+	 *
+	 * @param supplyCompCd - 업체코드
+	 * @return 배송비정책 목록
+	 * @author eskim
+	 * @since 2020. 11. 24
+	 */
+	Collection<CommonCode> getSupplyDeliveryFeePolicyList(String supplyCompCd);
+
 }

+ 3 - 6
style24.admin/src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -1372,15 +1372,12 @@ public class TsaGoodsService {
 			throw new IllegalStateException(message.getMessage("구성상품 중 기준 상품의 브랜드를 확인해 주세요."));
 		}
 
-		int delvFee = 0;
-		int minOrdAmt = 0;
 		float pntPrate = 0.0f;
 		float pntMrate = 0.0f;
 		float sellFeeRate = 0.0f;
+		String delvFeeCd = "";
 		for (Brand tmpBrand : brandList) {
 
-			delvFee = tmpBrand.getDelvFee();
-			minOrdAmt = tmpBrand.getMinOrdAmt();
 			if ("10".equals(regGoods.getFormalGb())) {
 				pntPrate = tmpBrand.getPntPrate10();
 				pntMrate = tmpBrand.getPntMrate10();
@@ -1389,9 +1386,9 @@ public class TsaGoodsService {
 				pntMrate = tmpBrand.getPntMrate20();
 			}
 			sellFeeRate = tmpBrand.getSellFeeRate();
+			delvFeeCd = tmpBrand.getDelvFeeCd();
 		}
-		regGoods.setDelvFee(delvFee); // 배송비
-		regGoods.setMinOrdAmt(minOrdAmt); // 무료배송비최소구매금액
+		regGoods.setDelvFeeCd(delvFeeCd);// 배송비전책코드
 		regGoods.setPntPrate(pntPrate); // 포인트적립율(PC)
 		regGoods.setPntMrate(pntMrate); // 포인트적립율(MOBILE)
 		regGoods.setSellFeeRate(sellFeeRate); // 판매수수료율

+ 11 - 0
style24.admin/src/main/java/com/style24/admin/biz/service/TsaRendererService.java

@@ -344,6 +344,17 @@ public class TsaRendererService {
 		return this.getDeliveryLocList(delvLoc);
 	}
 
+	/**
+	 * 배송비정책 목록
+	 * @param supplyCompCd - 공급업체코드
+	 * @return 배송비정책 목록
+	 * @author eskim
+	 * @since 2020. 11. 24
+	 */
+	public Collection<CommonCode> getSupplyDeliveryFeePolicyList(String supplyCompCd) {
+		 return rendererDao.getSupplyDeliveryFeePolicyList(supplyCompCd);
+	}
+
 //	/**
 //	 * 직송매장 목록
 //	 * @return

+ 1 - 0
style24.admin/src/main/java/com/style24/admin/biz/web/TsaBusinessController.java

@@ -600,4 +600,5 @@ public class TsaBusinessController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
 
+
 }

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

@@ -95,6 +95,19 @@ public class TsaRendererController extends TsaBaseController {
 		return rendererService.getDeliveryLocList(supplyCompCd);
 	}
 
+	/**
+	 * 배송비정책 목록
+	 * @param supplyCompCd - 공급업체코드
+	 * @return
+	 * @author eskim
+	 * @since 2020. 11. 25
+	 */
+	@GetMapping("/delvFee/list/{supplyCompCd}")
+	@ResponseBody
+	public Collection<CommonCode> getDeliveryFeeList(@PathVariable String supplyCompCd) {
+		return rendererService.getSupplyDeliveryFeePolicyList(supplyCompCd);
+	}
+
 //	/**
 //	 * 벤더외부몰 목록
 //	 * @param vendorId - 벤더ID

+ 1 - 0
style24.admin/src/main/java/com/style24/persistence/domain/Brand.java

@@ -25,6 +25,7 @@ public class Brand extends TscBaseDomain {
 	private String delvLocNm;		// 출고처명
 	private String erpBrandCd;		// ERP브랜드코드
 	private String selfYn;			// 자사여부(Y:자사, N:입점)
+	private String delvFeeCd;		// 배송비정책코드
 	private int delvFee;			// 기본배송비
 	private int minOrdAmt;			// 무료배송비최소주문금액
 	private float sellFeeRate;		// 판매수수료율

+ 1 - 2
style24.admin/src/main/java/com/style24/persistence/domain/Goods.java

@@ -45,8 +45,7 @@ public class Goods extends TscBaseDomain {
 	private String supplyCompCd;		//공급업체코드
 	private String supplyGoodsCd;		//공급업체상품코드(원코드)
 	private String ageGrpCd;		//상품연령대(공통코드 G023)
-	private int delvFee;		//배송비
-	private int minOrdAmt;		//무료배송비최소구매금액
+	private String delvFeeCd;	//배송비정책코드
 	private float pntPrate;		//포인트적립율(PC)
 	private float pntMrate;		//포인트적립율(모바일)
 	private float sellFeeRate;		//판매수수료율

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

@@ -214,7 +214,7 @@
 		     , UPD_DT
 		)
 		VALUES (
-		       (SELECT CONCAT(SUPPLY_COMP_CD,'_',IFNULL(LPAD(SUBSTRING(MAX(DELV_FEE_CD),INSTR(MAX(DELV_FEE_CD),'_') + 1) + 1,2,'0'),'01'))
+		       (SELECT CONCAT(IFNULL(SUPPLY_COMP_CD,#{supplyCompCd}),'_',IFNULL(LPAD(SUBSTRING(MAX(DELV_FEE_CD),INSTR(MAX(DELV_FEE_CD),'_') + 1) + 1,2,'0'),'01'))
 		        FROM   TB_DELV_FEE_POLICY Z
 		        WHERE  SUPPLY_COMP_CD LIKE CONCAT(#{supplyCompCd},'%')
 		       )
@@ -392,8 +392,7 @@
 		     , C.DELV_LOC_NM                 /*출고처명*/
 		     , A.ERP_BRAND_CD                /*ERP브랜드코드*/
 		     , A.SELF_YN                     /*자사여부*/
-		     , A.DELV_FEE                    /*기본배송비*/
-		     , A.MIN_ORD_AMT                 /*무료배송비기준*/
+		     , A.DELV_FEE_CD                 /*배송비정책코드*/
 		     , A.SELL_FEE_RATE               /*판매수수료율*/
 		     , A.USE_YN                      /*사용여부*/
 		     , A.PNT_PRATE10                 /*포인트적립율(PC)*/
@@ -401,9 +400,13 @@
 		     , A.PNT_PRATE20                 /*포인트적립율(PC)*/
 		     , A.PNT_MRATE20                 /*포인트적립율(모바일)*/
 		     , A.DISP_ORD                    /*표시순서*/
+		     , D.MIN_ORD_AMT                 /*무료배송최소금액*/
+		     , D.DELV_FEE                    /*배송비*/
 		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
+		LEFT OUTER JOIN TB_DELV_FEE_POLICY D ON A.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
+		                                  AND A.DELV_FEE_CD =  D.DELV_FEE_CD
 		WHERE  1 = 1
 		<if test='supplyCompCd != null and supplyCompCd != ""'>
 		AND    A.SUPPLY_COMP_CD = #{supplyCompCd}
@@ -550,8 +553,7 @@
 		     , DISTRIBUTION_GB
 		     , SELF_YN
 		     , ERP_BRAND_CD
-		     , MIN_ORD_AMT
-		     , DELV_FEE
+		     , DELV_FEE_CD
 		     , DELV_LOC_CD
 		     , SELL_FEE_RATE
 		     , PNT_PRATE10
@@ -579,8 +581,7 @@
 		            ELSE 'N'
 		       END
 		     , #{erpBrandCd}
-		     , IFNULL(#{minOrdAmt},0)
-		     , IFNULL(#{delvFee},0)
+		     , #{DELV_FEE_CD}
 		     , #{delvLocCd}
 		     , IFNULL(#{sellFeeRate},0)
 		     , IFNULL(#{pntPrate10},0)
@@ -609,8 +610,7 @@
 		                      ELSE 'N'
 		                 END
 		     , ERP_BRAND_CD = #{erpBrandCd}
-		     , MIN_ORD_AMT = IFNULL(#{minOrdAmt},0)
-		     , DELV_FEE = IFNULL(#{delvFee},0)
+		     , DELV_FEE_CD = #{delvFeeCd}
 		     , DELV_LOC_CD = #{delvLocCd}
 		     , SELL_FEE_RATE = IFNULL(#{sellFeeRate},0)
 		     , PNT_PRATE10 = IFNULL(#{pntPrate10},0)

+ 12 - 0
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaRenderer.xml

@@ -361,5 +361,17 @@
 		AND CD_GB = 'G072'
 		AND USE_YN = 'Y'
 	</select>
+	
+	<!-- 업체별 배송비정책 목록 -->
+	<select id="getSupplyDeliveryFeePolicyList" parameterType="String" resultType="CommonCode">
+		/* TsaRenderer.getSupplyDeliveryFeePolicyList */
+		SELECT DELV_FEE_CD AS CD
+			 , CONCAT(MIN_ORD_AMT,'/',DELV_FEE) AS CD_NM
+		FROM TB_DELV_FEE_POLICY
+		WHERE 1=1
+		AND SUPPLY_COMP_CD = #{supplyCompCd}
+		AND USE_YN = 'Y'
+		ORDER BY DELV_FEE_CD
+	</select>
 
 </mapper>

+ 36 - 16
style24.admin/src/main/webapp/WEB-INF/views/business/BrandForm.html

@@ -149,14 +149,16 @@
 						</td>
 					</tr>
 					<tr>
-						<th>기본배송비<i class="required" title="필수"></i></th>
+						<th>배송비정책<i class="required" title="필수"></i></th>
 						<td>
-							<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>
+							<select name="delvFeeCd" required="required" data-valid-name="배송비정책">
+								<option value="">[선택]</option>
+							</select>
+							<span class="marL10 cRed"><i class="fa fa-info-circle" aria-hidden="true"></i> 변경된 배송정책은 이후 등록된 상품부터 적용됩니다.</span>
 						</td>
-						<th>무료배송기준<i class="required" title="필수"></i></th>
+						<th>판매수수료율<i class="required" title="필수"></i></th>
 						<td>
-							<input type="text" class="w100 aR" name="minOrdAmt" value="0" maxlength="7" required="required" data-valid-name="무료배송기준" data-valid-type="integer"/>원 이상 구매시
+							<input type="text" class="w100 aR" name="sellFeeRate" value="0" maxlength="3" required="required" data-valid-name="판매수수료율" data-valid-type="real"/>%
 						</td>
 					</tr>
 					<tr>
@@ -179,12 +181,6 @@
 							<input type="text" class="w100 aR" name="pntMrate20" maxlength="3" required="required" data-valid-name="포인트적립율(모바일이월)" data-valid-type="real"/>%
 						</td>
 					</tr>
-					<tr>
-						<th>판매수수료율<i class="required" title="필수"></i></th>
-						<td colspan="3">
-							<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">
@@ -305,7 +301,7 @@
 		$("#detailForm input[name=brandGrpNm]").val(event.data.brandGrpNm);
 		$("#detailForm input[name=erpBrandCd]").val(event.data.erpBrandCd);
 		$("#detailForm select[name=distributionGb]").val(event.data.distributionGb);
-		fnGetSupplyCompCdList(event.data.supplyCompCd);
+		fnGetSupplyCompCdList(event.data.supplyCompCd, event.data.delvFeeCd);
 		
 		// 출고처 정보
 		$.getJSON('/renderer/delvloc/list/' + event.data.supplyCompCd
@@ -412,11 +408,23 @@
 					});
 				}
 			);
+			
+			// 업체별 배송지 정책 정보
+			$.getJSON('/renderer/delvFee/list/' + result[0].supplyCompCd
+				, function(result, status) {debugger;
+					$('#detailForm select[name=delvFeeCd]').empty().append('<option value="">[선택]</option>');
+					$.each(result, function(idx, item) {
+						var optionHtml = '<option value="' + item.cd + '">[' + item.cd + '] '+ item.cdNm + '</option>\n';
+						$('#detailForm select[name=delvFeeCd]').append(optionHtml);
+					});
+				}
+			);
+			
 		});
 	});
 	
 	// 해당공급업체 조회
-	var fnGetSupplyCompCdList = function(supplyCompCd){
+	var fnGetSupplyCompCdList = function(supplyCompCd, delvFeeCd){
 		$.getJSON('/renderer/supply/company/list/' + $('#detailForm select[name=brandGb]').val()
 			, function(result, status) {
 				$('#detailForm select[name=supplyCompCd]').empty().append('<option value="">[선택]</option>');
@@ -427,13 +435,25 @@
 				$("#detailForm select[name=supplyCompCd]").val(supplyCompCd);
 		});
 		
+		debugger;
+		// 업체별 배송지 정책 정보
+		$.getJSON('/renderer/delvFee/list/' + supplyCompCd
+			, function(result, status) {debugger;
+				$('#detailForm select[name=delvFeeCd]').empty().append('<option value="">[선택]</option>');
+				$.each(result, function(idx, item) {
+					var optionHtml = '<option value="' + item.cd + '">[' + item.cd + '] '+ item.cdNm + '</option>\n';
+					$('#detailForm select[name=delvFeeCd]').append(optionHtml);
+				});
+				$("#detailForm select[name=delvFeeCd]").val(delvFeeCd);
+			}
+		);
 	}
 	
 	
 	// 브랜드담당MD 목록
-	var fnGetBrandMdList = function(brandCd) {debugger;
+	var fnGetBrandMdList = function(brandCd) {
 		$.getJSON('/business/brand/md/list/' + brandCd
-			, function(result, status) {debugger;
+			, function(result, status) {
 				$("#tdBrandMd input[name=mdNm]").val('');
 				$("#tdBrandMd input[name=mdNo]").val('');
 				
@@ -484,7 +504,7 @@
 		});
 	}
 	
-	var fnSetMdInfo = function(result) {debugger;
+	var fnSetMdInfo = function(result) {
 		var ind = $('#mdIdx').val();
 		$("#tdBrandMd input[name=mdNo]").eq(ind).val(result[0].mdNo);
 		$("#tdBrandMd input[name=mdNm]").eq(ind).val(result[0].mdNm);

+ 2 - 1
style24.admin/src/main/webapp/WEB-INF/views/business/SupplyCompanyForm.html

@@ -440,7 +440,7 @@
 			$('#detailForm input:radio[name=econtractYn]').eq(1).trigger('click');
 		}
 		
-		$('#detailForm input[name=settleDay]').val(event.data.settleDay);
+		$('#detailForm select[name=settleDay]').val(event.data.settleDay);
 // 		$('#detailForm input[name=minOrdAmt]').val(Number(event.data.minOrdAmt).addComma());
 // 		$('#detailForm input[name=delvFee]').val(Number(event.data.delvFee).addComma());
 		$('#detailForm select[name=bankCd]').val(event.data.bankCd);
@@ -544,6 +544,7 @@
 		$.getJSON('/business/delivery/fee/policy/list/' + supplyCompCd
 			, function(result, status) {
 				if (result == null || result.length == 0) {
+					$('.delvFeePolicy').show();
 					return;
 				}