Pārlūkot izejas kodu

품목카테고리매핑 저장/삭제 시 카테고리상품 데이터 생성/삭제 로직 추가

gagamel 5 gadi atpakaļ
vecāks
revīzija
90b93b9aa8

+ 18 - 2
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaDisplayDao.java

@@ -96,12 +96,20 @@ public interface TsaDisplayDao {
 	Collection<Category> getCategoryGbList(String cateGb);
 
 	/**
-	 * 품목카테고리매핑 저장
+	 * 품목카테고리매핑 생성
 	 * @param itemkindCate - 품목카테고리 정보
 	 * @author gagamel
 	 * @since 2021. 1. 6
 	 */
-	void saveItemkindCategoryMapping(ItemkindCategory itemkindCate);
+	void createItemkindCategoryMapping(ItemkindCategory itemkindCate);
+
+	/**
+	 * 품목카테고리매핑에 의한 카테고리상품 생성
+	 * @param itemkindCate - 품목카테고리 정보
+	 * @author gagamel
+	 * @since 2021. 1. 6
+	 */
+	void createCategoryGoodsByItemkindCategoryMapping(ItemkindCategory itemkindCate);
 
 	/**
 	 * 품목카테고리매핑 삭제
@@ -111,6 +119,14 @@ public interface TsaDisplayDao {
 	 */
 	void deleteItemkindCategoryMapping(ItemkindCategory itemkindCate);
 
+	/**
+	 * 품목카테고리매핑에 의한 카테고리상품 삭제
+	 * @param itemkindCate - 품목카테고리 정보
+	 * @author gagamel
+	 * @since 2021. 1. 6
+	 */
+	void deleteCategoryGoodsByItemkindCategoryMapping(ItemkindCategory itemkindCate);
+
 	/**
 	 * 품목카테고리매핑 목록
 	 * @param itemkindCd - 품목코드

+ 10 - 1
style24.admin/src/main/java/com/style24/admin/biz/service/TsaDisplayService.java

@@ -120,7 +120,12 @@ public class TsaDisplayService {
 	public void saveItemkindCategoryMappingList(Collection<ItemkindCategory> itemkindCateList) {
 		for (ItemkindCategory itemkindCate : itemkindCateList) {
 			itemkindCate.setRegNo(TsaSession.getInfo().getUserNo());
-			displayDao.saveItemkindCategoryMapping(itemkindCate);
+
+			// 품목카테고리매핑 생성
+			displayDao.createItemkindCategoryMapping(itemkindCate);
+
+			// 품목카테고리매핑에 의한 카테고리상품 생성
+			displayDao.createCategoryGoodsByItemkindCategoryMapping(itemkindCate);
 		}
 	}
 
@@ -133,7 +138,11 @@ public class TsaDisplayService {
 	@Transactional("shopTxnManager")
 	public void deleteItemkindCategoryMappingList(Collection<ItemkindCategory> itemkindCateList) {
 		for (ItemkindCategory itemkindCate : itemkindCateList) {
+			// 품목카테고리매핑 삭제
 			displayDao.deleteItemkindCategoryMapping(itemkindCate);
+
+			// 품목카테고리매핑에 의한 카테고리상품 삭제
+			displayDao.deleteCategoryGoodsByItemkindCategoryMapping(itemkindCate);
 		}
 	}
 

+ 0 - 3
style24.admin/src/main/java/com/style24/admin/biz/web/TsaDisplayController.java

@@ -117,9 +117,6 @@ public class TsaDisplayController extends TsaBaseController {
 		// 카테고리구분
 		mav.addObject("cateGbList", rendererService.getAvailCommonCodeList("G032"));
 
-		// 카테고리유형
-		mav.addObject("cateTypeList", rendererService.getAvailCommonCodeList("G031"));
-
 		mav.setViewName("display/ItemkindCategoryForm");
 
 		return mav;

+ 40 - 4
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaDsiplay.xml

@@ -462,7 +462,6 @@
 		       END                             AS CATE_NM     /*카테고리명*/
 		     , FULL_CATE_NO                                   /*FULL카테고리번호*/
 		     , FULL_CATE_NM                                   /*FULL카테고리명*/
-		     , CATE_TYPE                                      /*카테고리유형*/
 		     , CASE WHEN LEAF_CATE_NO = CATE5_NO THEN 5
 		            WHEN LEAF_CATE_NO = CATE4_NO THEN 4
 		            WHEN LEAF_CATE_NO = CATE3_NO THEN 3
@@ -472,12 +471,13 @@
 		     , REPLACE(FULL_CATE_NO,' > ','/') AS TREE_PATH   /*AG-GRID트리패스(ag-Grid미사용시 필요 없음)*/
 		FROM   TB_CATE_4SRCH C4
 		WHERE  CATE_GB = #{cateGb}
+		AND    CATE_TYPE = 'G031_10' /*상품분류카테고리*/
 		ORDER  BY DISP_ORD
 	</select>
 	
-	<!-- 품목카테고리매핑 저장  -->
-	<insert id="saveItemkindCategoryMapping" parameterType="ItemkindCategory" >
-		/* TsaDisplay.saveItemkindCategoryMapping */
+	<!-- 품목카테고리매핑 생성  -->
+	<insert id="createItemkindCategoryMapping" parameterType="ItemkindCategory">
+		/* TsaDisplay.createItemkindCategoryMapping */
 		INSERT INTO TB_ITEMKIND_CATE (
 		       ITEMKIND_CD
 		     , CATE_NO
@@ -491,6 +491,31 @@
 		     , NOW()
 		)
 	</insert>
+	
+	<!-- 품목카테고리매핑에 의한 카테고리상품 생성  -->
+	<insert id="createCategoryGoodsByItemkindCategoryMapping" parameterType="ItemkindCategory">
+		/* TsaDisplay.createCategoryGoodsByItemkindCategoryMapping */
+		INSERT INTO TB_CATE_GOODS (
+		       CATE_NO
+		     , GOODS_CD
+		     , DISP_ORD
+		     , REG_NO
+		     , REG_DT
+		)
+		SELECT #{cateNo} AS CATE_NO
+		     , GOODS_CD
+		     , 100       AS DISP_ORD
+		     , #{regNo}  AS REG_NO
+		     , NOW()     AS REG_DT
+		FROM   TB_GOODS A
+		WHERE  ITEMKIND_CD = #{itemkindCd}
+		AND    GOODS_STAT NOT IN ('G008_95','G008_99') /*시즌아웃,DROP(삭제)가 아닌넘*/
+		AND    NOT EXISTS (SELECT 1
+		                   FROM   TB_CATE_GOODS
+		                   WHERE  CATE_NO = #{cateNo}
+		                   AND    GOODS_CD = A.GOODS_CD
+		                  )
+	</insert>
 
 	<!-- 품목카테고리매핑 삭제  -->
 	<delete id="deleteItemkindCategoryMapping" parameterType="ItemkindCategory">
@@ -500,6 +525,17 @@
 		AND    CATE_NO = #{cateNo}
 	</delete>
 	
+	<!-- 품목카테고리매핑에 의한 카테고리상품 삭제  -->
+	<delete id="deleteCategoryGoodsByItemkindCategoryMapping" parameterType="ItemkindCategory">
+		/* TsaDisplay.deleteCategoryGoodsByItemkindCategoryMapping */
+		DELETE FROM TB_CATE_GOODS
+		WHERE  CATE_NO = #{cateNo}
+		AND    GOODS_CD IN (SELECT GOODS_CD
+		                    FROM   TB_GOODS
+		                    WHERE  ITEMKIND_CD = #{itemkindCd}
+		                   )
+	</delete>
+	
 	<!-- 품목카테고리매핑 목록 -->
 	<select id="getItemkindCategoryMappingList" parameterType="String" resultType="ItemkindCategory">
 		/* TsaDisplay.getItemkindCategoryMappingList */

+ 5 - 10
style24.admin/src/main/webapp/WEB-INF/views/display/ItemkindCategoryForm.html

@@ -57,7 +57,7 @@
 					
 					<ul class="panelBar">
 						<li>
-							<h4>품목카테고리매핑 목록<span id="itemkindCd" style="display: none;"></span></h4>
+							<h4>품목카테고리매핑 목록<span id="itemkindCd" class="cBlue"></span></h4>
 						</li>
 						<li class="right">
 							<button type="button" class="btn btn-danger btn-lg" id="btnDelete">삭제</button>
@@ -73,7 +73,6 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 	let cateGbList = gagajf.convertToArray([[${cateGbList}]]);
-	let cateTypeList = gagajf.convertToArray([[${cateTypeList}]]);
 
 	let columnDefs1 = [
 		{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
@@ -86,14 +85,10 @@
 	
 	let columnDefs2 = [
 		{headerName: "카데고리명", field: "cateNm", width: 150, cellClass: 'text-center'},
-		{
-			headerName: "카테고리유형", field: "cateType", width: 200, cellClass: 'text-center',
-			cellRenderer: function (params) { return gagaAgGrid.lookupValue(cateTypeList, params.value); }
-		},
-		{headerName: "카테고리구분", field: "cateGb", hide: true},
-		{headerName: "분류레벨", field: "clsLvl", hide: true},
-		{headerName: "FULL카테고리번호", field: "fullCateNo", hide: true},
-		{headerName: "FULL카테고리명", field: "fullCateNm", hide: true}
+		{headerName: "카테고리구분", field: "cateGb"},
+		{headerName: "FULL카테고리번호", field: "fullCateNo"},
+		{headerName: "FULL카테고리명", field: "fullCateNm"},
+		{headerName: "분류레벨", field: "clsLvl", hide: true}
 	];
 	
 	let columnDefs3 = [