Quellcode durchsuchen

상품상세 수정

eskim vor 5 Jahren
Ursprung
Commit
08d017a76a

+ 185 - 179
style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -536,8 +536,8 @@ public class TsaGoodsController extends TsaBaseController {
 		// 공급업체
 		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd));
 
-		String[] exceptCds = {"G008_00"};
-		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
+		String[] goodsStatExceptCds = {"G008_00"};
+		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", goodsStatExceptCds));
 
 		// 정상이월
 		mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
@@ -557,6 +557,11 @@ public class TsaGoodsController extends TsaBaseController {
 		mav.addObject("goodsTypeList", rendererService.getAvailCommonCodeList("G056"));
 		// 상품구분
 		mav.addObject("goodsGbList", rendererService.getAvailCommonCodeList("G073"));
+		// 유통구분
+		String[] distributionGbExceptCds = {"G065_20"};
+		mav.addObject("distributionGbList", rendererService.getCommonCodeList("G065", "Y", distributionGbExceptCds));
+		// 상품연령대
+		mav.addObject("ageGrpCdList", rendererService.getAvailCommonCodeList("G023"));
 		// 색상
 		Color color = new Color();
 		mav.addObject("colorList", rendererService.getColorList(color));
@@ -685,6 +690,184 @@ public class TsaGoodsController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 
+	/**
+	 * 상품 상세 저장
+	 *
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @since 2020. 10. 27
+	 */
+	@PostMapping("/detail/save")
+	@ResponseBody
+	public GagaResponse saveGoodsDetail(@RequestBody Goods goods) {
+
+		// 상품상태에 따른 이미지 정보 확인 - 상품상태가 승인대기나 승인 완료일 경우
+		if ("G008_40".equals(goods.getGoodsStat()) || "G008_90".equals(goods.getGoodsStat())) {
+			Collection<Goods> goodsList = goodsService.getGoodsImgsYn(goods);
+			String goodsImageYn = "N";
+			for (Goods tmpGoods : goodsList) {
+				goodsImageYn = tmpGoods.getGoodsImageYn();
+			}
+			if ("N".equals(goodsImageYn)) {
+				throw new IllegalStateException("필수 이미지나 고시정보가 등록되지 않은 상품은 <br/>'승인대기'나 '승인완료' 상태로 변경할 수 없습니다.");
+			}
+		}
+
+		Collection<GoodsNotiInfo> notiList = null;
+		Collection<GoodsCompose> goodComposeList = null;
+		Collection<CodiGoods> codiGoodList = null;
+		ObjectMapper mapper = new ObjectMapper();
+		try {
+			if (goods.getNotiList() != null) {
+				notiList = mapper.readValue(goods.getNotiList(), new TypeReference<Collection<GoodsNotiInfo>>() {
+				});
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		try {
+			if (goods.getCodiGoodsList() != null) {
+				codiGoodList = mapper.readValue(goods.getCodiGoodsList(), new TypeReference<Collection<CodiGoods>>() {
+				});
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		try {
+			if (goods.getGoodsComposeList() != null) {
+				goodComposeList = mapper.readValue(goods.getGoodsComposeList(), new TypeReference<Collection<GoodsCompose>>() {
+				});
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		goods.setNotiListNew(notiList);
+		goods.setGoodsComposeListNew(goodComposeList);
+		goods.setCodiGoodsListNew(codiGoodList);
+
+		goodsService.saveGoodsDetail(goods);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
+
+	/**
+	 * 코디상품 삭제
+	 *
+	 * @param codiGoodsList
+	 * @author eskim
+	 * @since 2020. 10. 28
+	 */
+	@PostMapping("/codi/delete")
+	@ResponseBody
+	public GagaResponse deleteCodiGoods(@RequestBody Collection<CodiGoods> codiGoodsList) {
+
+		goodsService.deleteCodiGoods(codiGoodsList);
+		return super.ok(message.getMessage("SUCC_0003"));
+	}
+
+	/**
+	 * 세트상품구성 화면
+	 *
+	 * @param
+	 * @return
+	 * @author eskim
+	 * @since 2020. 05. 26
+	 */
+	@GetMapping("/set/form")
+	@ResponseBody
+	public ModelAndView setForm(Goods goods) {
+		ModelAndView mav = new ModelAndView();
+
+		// 사용여부
+		mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
+		// 정상이월
+		mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
+		// 성별
+		mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
+		// 시즌
+		mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
+		// 스타일년도
+		mav.addObject("styleYearList", rendererService.getAvailCommonCodeList("G023"));
+		// 매입유형
+		mav.addObject("buyingTypeList", rendererService.getAvailCommonCodeList("G035"));
+		// 상품상태
+		// mav.addObject("goodsStatList",
+		// rendererService.getAvailCommonCodeList("G008"));
+		String[] exceptCds = {"00"};
+		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
+
+		mav.addObject("params", goods);
+		mav.setViewName("goods/GoodsSetForm");
+		return mav;
+	}
+
+//	/**
+//	 * 세트 상품 등록
+//	 *
+//	 * @param goods
+//	 * @return
+//	 * @author eskim
+//	 * @since 2020. 06. 12
+//	 */
+//	@PostMapping("/set/save")
+//	@ResponseBody
+//	public GagaResponse saveGoodsSet(@RequestBody Goods goods) {
+//		goodsService.saveGoodsSet(goods);
+//		return super.ok(message.getMessage("SUCC_0001"));
+//	}
+
+	/**
+	 * 딜상품구성 화면
+	 *
+	 * @param
+	 * @return
+	 * @author eskim
+	 * @since 2020. 05. 26
+	 */
+	@GetMapping("/deal/form")
+	@ResponseBody
+	public ModelAndView dealForm(Goods goods) {
+		ModelAndView mav = new ModelAndView();
+
+		// 사용여부
+		mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
+		// 정상이월
+		mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
+		// 성별
+		mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
+		// 시즌
+		mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
+		// 스타일년도
+		mav.addObject("styleYearList", rendererService.getAvailCommonCodeList("G023"));
+		// 매입유형
+		mav.addObject("buyingTypeList", rendererService.getAvailCommonCodeList("G035"));
+		// 상품상태
+		// mav.addObject("goodsStatList",
+		// rendererService.getAvailCommonCodeList("G008"));
+		String[] exceptCds = {"00"};
+		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
+
+		mav.addObject("params", goods);
+		mav.setViewName("goods/GoodsDealForm");
+		return mav;
+	}
+
+//	/**
+//	 * 딜 상품 등록
+//	 *
+//	 * @param goods
+//	 * @return
+//	 * @author eskim
+//	 * @since 2020. 06. 14
+//	 */
+//	@PostMapping("/deal/save")
+//	@ResponseBody
+//	public GagaResponse saveGoodsDeal(@RequestBody Goods goods) {
+//		goodsService.saveGoodsDeal(goods);
+//		return super.ok(message.getMessage("SUCC_0001"));
+//	}
+
 	/**
 	 * 상품 대량 등록 화면
 	 *
@@ -927,182 +1110,5 @@ public class TsaGoodsController extends TsaBaseController {
 		return result;
 	}
 
-	/**
-	 * 상품 상세 저장
-	 *
-	 * @param goods
-	 * @return
-	 * @author eskim
-	 * @since 2020. 10. 27
-	 */
-	@PostMapping("/detail/save")
-	@ResponseBody
-	public GagaResponse saveGoodsDetail(@RequestBody Goods goods) {
-
-		// 상품상태에 따른 이미지 정보 확인 - 상품상태가 승인대기나 승인 완료일 경우
-		if ("G008_40".equals(goods.getGoodsStat()) || "G008_90".equals(goods.getGoodsStat())) {
-			Collection<Goods> goodsList = goodsService.getGoodsImgsYn(goods);
-			String goodsImageYn = "N";
-			for (Goods tmpGoods : goodsList) {
-				goodsImageYn = tmpGoods.getGoodsImageYn();
-			}
-			if ("N".equals(goodsImageYn)) {
-				throw new IllegalStateException("필수 이미지나 고시정보가 등록되지 않은 상품은 <br/>'승인대기'나 '승인완료' 상태로 변경할 수 없습니다.");
-			}
-		}
-
-		Collection<GoodsNotiInfo> notiList = null;
-		Collection<GoodsCompose> goodComposeList = null;
-		Collection<CodiGoods> codiGoodList = null;
-		ObjectMapper mapper = new ObjectMapper();
-		try {
-			if (goods.getNotiList() != null) {
-				notiList = mapper.readValue(goods.getNotiList(), new TypeReference<Collection<GoodsNotiInfo>>() {
-				});
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		try {
-			if (goods.getCodiGoodsList() != null) {
-				codiGoodList = mapper.readValue(goods.getCodiGoodsList(), new TypeReference<Collection<CodiGoods>>() {
-				});
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		try {
-			if (goods.getGoodsComposeList() != null) {
-				goodComposeList = mapper.readValue(goods.getGoodsComposeList(), new TypeReference<Collection<GoodsCompose>>() {
-				});
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-
-		goods.setNotiListNew(notiList);
-		goods.setGoodsComposeListNew(goodComposeList);
-		goods.setCodiGoodsListNew(codiGoodList);
-
-		goodsService.saveGoodsDetail(goods);
-		return super.ok(message.getMessage("SUCC_0001"));
-	}
-
-	/**
-	 * 코디상품 삭제
-	 *
-	 * @param codiGoodsList
-	 * @author eskim
-	 * @since 2020. 10. 28
-	 */
-	@PostMapping("/codi/delete")
-	@ResponseBody
-	public GagaResponse deleteCodiGoods(@RequestBody Collection<CodiGoods> codiGoodsList) {
 
-		goodsService.deleteCodiGoods(codiGoodsList);
-		return super.ok(message.getMessage("SUCC_0003"));
-	}
-
-	/**
-	 * 세트상품구성 화면
-	 *
-	 * @param
-	 * @return
-	 * @author eskim
-	 * @since 2020. 05. 26
-	 */
-	@GetMapping("/set/form")
-	@ResponseBody
-	public ModelAndView setForm(Goods goods) {
-		ModelAndView mav = new ModelAndView();
-
-		// 사용여부
-		mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
-		// 정상이월
-		mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
-		// 성별
-		mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
-		// 시즌
-		mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
-		// 스타일년도
-		mav.addObject("styleYearList", rendererService.getAvailCommonCodeList("G023"));
-		// 매입유형
-		mav.addObject("buyingTypeList", rendererService.getAvailCommonCodeList("G035"));
-		// 상품상태
-		// mav.addObject("goodsStatList",
-		// rendererService.getAvailCommonCodeList("G008"));
-		String[] exceptCds = {"00"};
-		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
-
-		mav.addObject("params", goods);
-		mav.setViewName("goods/GoodsSetForm");
-		return mav;
-	}
-
-//	/**
-//	 * 세트 상품 등록
-//	 *
-//	 * @param goods
-//	 * @return
-//	 * @author eskim
-//	 * @since 2020. 06. 12
-//	 */
-//	@PostMapping("/set/save")
-//	@ResponseBody
-//	public GagaResponse saveGoodsSet(@RequestBody Goods goods) {
-//		goodsService.saveGoodsSet(goods);
-//		return super.ok(message.getMessage("SUCC_0001"));
-//	}
-
-	/**
-	 * 딜상품구성 화면
-	 *
-	 * @param
-	 * @return
-	 * @author eskim
-	 * @since 2020. 05. 26
-	 */
-	@GetMapping("/deal/form")
-	@ResponseBody
-	public ModelAndView dealForm(Goods goods) {
-		ModelAndView mav = new ModelAndView();
-
-		// 사용여부
-		mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
-		// 정상이월
-		mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
-		// 성별
-		mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
-		// 시즌
-		mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
-		// 스타일년도
-		mav.addObject("styleYearList", rendererService.getAvailCommonCodeList("G023"));
-		// 매입유형
-		mav.addObject("buyingTypeList", rendererService.getAvailCommonCodeList("G035"));
-		// 상품상태
-		// mav.addObject("goodsStatList",
-		// rendererService.getAvailCommonCodeList("G008"));
-		String[] exceptCds = {"00"};
-		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
-
-		mav.addObject("params", goods);
-		mav.setViewName("goods/GoodsDealForm");
-		return mav;
-	}
-
-//	/**
-//	 * 딜 상품 등록
-//	 *
-//	 * @param goods
-//	 * @return
-//	 * @author eskim
-//	 * @since 2020. 06. 14
-//	 */
-//	@PostMapping("/deal/save")
-//	@ResponseBody
-//	public GagaResponse saveGoodsDeal(@RequestBody Goods goods) {
-//		goodsService.saveGoodsDeal(goods);
-//		return super.ok(message.getMessage("SUCC_0001"));
-//	}
 }

+ 2 - 0
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -1273,6 +1273,8 @@
 		                                          ELSE FRST_CFRM_DT END)
 		  , PRE_PPNT_USABLE_YN = #{prePpntUsableYn}
 		  , PRE_MPNT_USABLE_YN = #{preMpntUsableYn}
+		  , DISTRIBUTION_GB = #{distributionGb}
+		  , AGE_GRP_CD = #{ageGrpCd}
 		  , UPD_NO = #{updNo}
 		  , UPD_DT = NOW()
 		WHERE GOODS_CD = #{goodsCd}

+ 47 - 20
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsDetailForm.html

@@ -158,7 +158,7 @@
 										</td>
 									</tr>
 									<tr>
-										<td rowspan="10">&nbsp;</td>
+										<td rowspan="11">&nbsp;</td>
 										<th>시즌<em class="required" title="필수"></em></th>
 										<td >
 											<select  name="seasonCd" id="seasonCd">
@@ -190,6 +190,23 @@
 											</select>
 											<input type="hidden" id="goodsGbOrg" name="goodsGbOrg"/>
 										</td>
+										<th>유통구분<em class="required" title="필수"></em></th>
+										<td><select  name="distributionGb" id="distributionGb">
+												<option value="">[선택]</option>
+												<option th:if="${distributionGbList}" th:each="oneData, status : ${distributionGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+											</select>
+											<input type="hidden" id="distributionGbOrg" name="distributionGbOrg"/>
+										</td>
+									</tr>
+									<tr id="erplinkarea">
+										<th>상품연령대</th>
+										<td>
+											<select  name="ageGrpCd" id="ageGrpCd">
+												<option value="">[선택]</option>
+												<option th:if="${ageGrpCdList}" th:each="oneData, status : ${ageGrpCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+											</select>
+											<input type="hidden" id="ageGrpCdOrg" name="ageGrpCdOrg"/>
+										</td>
 										<th>가격변경일</th>
 										<td colspan="3"><span id="priceUpdDtTxt"></span></td>
 									</tr>
@@ -720,6 +737,11 @@
 			$('#goodsDetailForm').find('#priceUpdDtTxt').html(!gagajf.isNull(result.priceUpdDt) ? result.priceUpdDt.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD") : '');
 			$('#goodsDetailForm').find('#frstCfrmDtTxt').html(!gagajf.isNull(result.frstCfrmDt) ? result.frstCfrmDt.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD") : '');
 
+			$('#goodsDetailForm select[name=distributionGb]').val(result.distributionGb);
+			$("#goodsDetailForm input[name=distributionGbOrg]").val(result.distributionGb);
+			$('#goodsDetailForm select[name=ageGrpCd]').val(result.ageGrpCd);
+			$("#goodsDetailForm input[name=ageGrpCdOrg]").val(result.ageGrpCd);
+			
 			$("#goodsDetailForm input[type=radio]").parent().removeClass("checked");
 			$("#goodsDetailForm input[type=radio]").removeAttr('checked');
 			
@@ -762,6 +784,7 @@
 			$("#goodsDetailForm input[name=prePpntUsableYnOrg]").val(result.prePpntUsableYn);
 			$("#goodsDetailForm input[name=preMpntUsableYnOrg]").val(result.preMpntUsableYn);
 			$("#goodsDetailForm input[name=changeableYnOrg]").val(result.changeableYn);
+			
 
 			$("#goodsDetailForm input[type=radio][checked]").addClass("checked");
 			//$("#goodsDetailForm input[type=radio][checked]").parent("label").addClass("checked");
@@ -908,12 +931,12 @@
 		if ("G056_S" == params.goodsType){	//세트
 			gagaAgGrid.showOrHideColumn(gridGoodsComposeOptions, 'currPrice', false);
 			gagaAgGrid.showOrHideColumn(gridGoodsComposeOptions, 'useYn', false);
-			gagaAgGrid.showOrHideColumn(gridGoodsComposeOptions, 'extendGoodsOptNm', false);
+			gagaAgGrid.showOrHideColumn(gridGoodsComposeOptions, 'compsGoodsOptNm', false);
 			
 			$('#GoodsComposeBtnArea').addClass("off");
 		}else{	//딜
 			gagaAgGrid.showOrHideColumn(gridGoodsComposeOptions, 'qty', false);
-			gagaAgGrid.showOrHideColumn(gridGoodsComposeOptions, 'extendcompsCurrPrice', false);
+			gagaAgGrid.showOrHideColumn(gridGoodsComposeOptions, 'compsCurrPrice', false);
 		}
 		gagaAgGrid.fetch("/goods/detail/compose/list?goodsCd=" + params.goodsCd , gridGoodsComposeOptions);
 	}	
@@ -982,8 +1005,7 @@
 
 		var listPrice = $("#goodsDetailForm input[name=listPrice]").val().removeComma();
 		var currPrice = $("#goodsDetailForm input[name=currPrice]").val().removeComma();
-		//dcRate = Math.round(100 - Math.floor((Number(currPrice) / Number(listPrice) * 100)*100)/100);
-		dcRate = 100 - (Number((Number(currPrice) / Number(listPrice)).toFixed(2)) *100)
+		dcRate =  100 - Math.floor(Number(currPrice) / Number(listPrice) * 100);	//절사
 
 		$("#goodsDetailForm").find("#dcRateTxt").html(dcRate);
 		$("#goodsDetailForm input[name=dcRate]").val(dcRate);
@@ -997,7 +1019,8 @@
 		var listPrice = $("#goodsDetailForm input[name=listPrice]").val().removeComma();
 		var currPrice = $("#goodsDetailForm input[name=currPrice]").val().removeComma();
 		//dcRate = Math.round(100 - Math.floor((Number(currPrice) / Number(listPrice) * 100)*100)/100);
-		dcRate = 100 - (Number((Number(currPrice) / Number(listPrice)).toFixed(2)) *100)
+		//dcRate = 100 - (Number((Number(currPrice) / Number(listPrice)).toFixed(2)) *100);
+		dcRate =  100 - Math.floor(Number(currPrice) / Number(listPrice) * 100);
 
 		if (dcRate < 0){
 			mcxDialog.alert('할인율이 0보다 작습니다.\n판매가를 확인해주세요.', function(){
@@ -1086,7 +1109,7 @@
 	}
 
 	//상품저장 버튼 클릭 시
-	$('#btnGoodsDetailSave').click(function() {
+	$('#btnGoodsDetailSave').click(function() {debugger;
 
 		var optCheck = false;
 		var idx = 0;
@@ -1492,14 +1515,15 @@
 				}
 			});
 			return false;
-		}else if (dcRate >= 90){
+		}else if (dcRate >= 90){debugger;
 			mcxDialog.confirmC("할인율이 90%이상입니다. 계속하시겠습니까?", {
 				btn: ["아니요","예"],
 				btnClick: function(index){
 					if (index == 1){
 						optCheck = true;
 					} else {
-						fnNoticheck();
+						if (!fnGoodsComposeCheck()) return false;
+						fnSaveCheck();
 					}
 				}
 			});
@@ -1507,16 +1531,15 @@
 		}else{
 			$("#goodsDetailForm").find("#dcRateTxt").html(dcRate);
 			$("#goodsDetailForm input[name=dcRate]").val(dcRate);
-			
+			fnSaveCheck();
 		}
-
 		
 		if (optCheck) return false;
 		
-		if (!fnGoodsComposeCheck()) return false;
-		
-		//fnNoticheck();
-
+	});
+	
+	//저장 관련 체크
+	var fnSaveCheck = function(idx){
 		if($("#goodsDetailForm input:checkbox[name=chkDescKeep]").is(':checked')){
 			mcxDialog.confirmC("'정보유지' 체크박스가 선택되어 있어 '상품상세설명' 항목이 저장되지 않습니다.<br/>저장을 원하시면 체크를 해제하세요. 계속하시겠습니까?", {
 				btn: ["아니요","예"],
@@ -1531,11 +1554,7 @@
 		}else{
 			fnGoodsSave();
 		}
-		
-		if (optCheck) return false;
-		
-		
-	});
+	}
 
 	// 구성 정보 관련 체크
 	var fnGoodsComposeCheck = function(){
@@ -1762,6 +1781,14 @@
 		if ($("#goodsDetailForm input[name=minOrdAmtOrg]").val() != $("#goodsDetailForm input[name=minOrdAmt]").val().removeComma()){
 			return true;
 		}
+		//유통구분
+		if ($("#goodsDetailForm input[name=distributionGbOrg]").val() != $("#goodsDetailForm select[name=distributionGb]").val()){
+			return true;
+		}
+		//상품연령대
+		if ($("#goodsDetailForm input[name=ageGrpCdOrg]").val() != $("#goodsDetailForm select[name=ageGrpCd]").val()){
+			return true;
+		}
 
 		return false;
 	}