Selaa lähdekoodia

상품별카테고리전시관리 개발중

bin2107 5 vuotta sitten
vanhempi
commit
de89675069

+ 8 - 0
src/main/java/com/style24/admin/biz/dao/TsaDisplayDao.java

@@ -168,4 +168,12 @@ public interface TsaDisplayDao {
 	 * @since 2021. 1. 18
 	 */
 	Collection<GoodsCategory> getGoodsCategoryViewList(String goodsCd);
+
+	/**
+	 * 상품별카테고리 삭제
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 18
+	 */
+	void deleteGoodsCategory(GoodsCategory goodsCategory);
 }

+ 28 - 0
src/main/java/com/style24/admin/biz/service/TsaDisplayService.java

@@ -249,4 +249,32 @@ public class TsaDisplayService {
 		return displayDao.getGoodsCategoryViewList(goodsCd);
 	}
 
+	/**
+	 * 상품별카테고리 삭제
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 18
+	 */
+	@Transactional("shopTxnManager")
+	//@CacheEvict(value = "cate", allEntries = true)
+	public void deleteGoodsCategoryList(GoodsCategory goodsCategory) {
+		for (String goodsCd : goodsCategory.getGoodsCdList()) {
+			GoodsCategory goodsCategoryData = new GoodsCategory();
+			goodsCategoryData.setGoodsCd(goodsCd);
+			goodsCategoryData.setCateCd(goodsCategory.getCateCd());
+			goodsCategoryData.setCateType(goodsCategory.getCateType());
+			goodsCategoryData.setCateCd1(goodsCategory.getCateCd1());
+			goodsCategoryData.setCateCd2(goodsCategory.getCateCd2());
+			goodsCategoryData.setCateCd3(goodsCategory.getCateCd3());
+			goodsCategoryData.setCateCd4(goodsCategory.getCateCd4());
+			this.deleteGoodsCategory(goodsCategoryData);
+		}
+	}
+
+	@Transactional("shopTxnManager")
+	//@CacheEvict(value = "cate", allEntries = true)
+	public void deleteGoodsCategory(GoodsCategory goodsCategory) {
+		displayDao.deleteGoodsCategory(goodsCategory);
+	}
+
 }

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

@@ -288,4 +288,18 @@ public class TsaDisplayController extends TsaBaseController {
 		return displayService.getGoodsCategoryViewList(goodsCd);
 	}
 
+	/**
+	 * 상품별카테고리 삭제
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 18
+	 */
+	@PostMapping("/goods/category/delete")
+	@ResponseBody
+	public GagaResponse deleteGoodsCategory(@RequestBody GoodsCategory goodsCategory) {
+		log.info("[Controller deleteGoodsCategory]{}",goodsCategory);
+		//displayService.deleteGoodsCategoryList(goodsCategory);
+		return super.ok(message.getMessage("SUCC_0003"));
+	}
+
 }

+ 122 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaDsiplay.xml

@@ -764,7 +764,9 @@
 					,REG_DT = NOW()
 	</insert>
 
+	<!-- 상품별카테고리 리스트 조회 -->
 	<select id="getGoodsCategoryViewList" parameterType="String" resultType="GoodsCategory">
+		/* TsaDisplay.getGoodsCategoryViewList */
 		SELECT CONCAT(FN_GET_CODE_NM('G032', B.CATE_GB ), ' > ',B.FULL_CATE_NM ) AS FULL_CATE_NM
 			 , A.CATE_NO AS CATE_CD
 			 , B.CATE_TYPE
@@ -779,4 +781,124 @@
 		  AND A.GOODS_CD = #{goodsCd}
 		ORDER BY B.CATE_TYPE, A.CATE_NO, B.DISP_ORD
 	</select>
+
+	<!-- 상품별 전시카테고리 삭제-->
+	<delete id="deleteGoodsCategory" parameterType="GoodsCategory">
+		/* TsaDisplay.deleteGoodsCategory */
+		SELECT *
+		FROM TB_CATE_GOODS
+		WHERE GOODS_CD = #{goodsCd}
+		<choose>
+		<when test="cateType == 'G031_20' and cateCd != null and cateCd != ''">
+		AND CATE_NO = #{cateCd}
+		</when>
+		<otherwise>
+		AND CATE_NO IN (
+			SELECT CATE_CD FROM
+			(
+				SELECT CATE1_NO AS CATE_CD
+				, CATE1_NO
+				, CATE2_NO
+				, CATE3_NO
+				, CATE4_NO
+				, CATE_TYPE
+				FROM TB_CATE_4SRCH
+				<if test="cateCd != null and cate1No != cateCd">
+				WHERE EXISTS (
+					SELECT 1 FROM (
+						SELECT COUNT(*) AS CATE_CNT
+						 FROM (
+							SELECT CATE_NO
+							FROM TB_CATE_GOODS
+							WHERE GOODS_CD = #{goodsCd}
+							AND CATE_NO IN (
+							    	SELECT LEAF_CATE_NO
+									FROM TB_CATE_4SRCH
+									WHERE CATE1_NO  = #{cate1No}
+								)
+							) ALIAS_FOR_SUBQUERY
+						) ALIAS_FOR_SUBQUERY
+					<![CDATA[WHERE CATE_CNT < 2 ]]>
+				)
+				</if>
+				UNION ALL
+				SELECT CATE2_NO AS CATE_CD
+					, CATE1_NO
+					, CATE2_NO
+					, CATE3_NO
+					, CATE4_NO
+					, CATE_TYPE
+				FROM TB_CATE_4SRCH
+				<if test="cateCd != null and cate1No != cateCd and cate2No != cateCd">
+				WHERE EXISTS (
+					SELECT 1 FROM (
+						SELECT COUNT(*) AS CATE_CNT
+						FROM (
+							SELECT CATE_NO
+							FROM TB_CATE_GOODS
+							WHERE GOODS_CD = #{goodsCd}
+							AND CATE_NO IN (
+							    SELECT LEAF_CATE_NO
+								FROM TB_CATE_4SRCH
+								WHERE CATE2_NO = #{cate2No}
+							)
+						) ALIAS_FOR_SUBQUERY
+					) ALIAS_FOR_SUBQUERY
+					<![CDATA[WHERE CATE_CNT < 2 ]]>
+				)
+				</if>
+				UNION ALL
+				SELECT CATE3_NO AS CATE_CD
+					, CATE1_NO
+					, CATE2_NO
+					, CATE3_NO
+					, CATE4_NO
+					, CATE_TYPE
+				FROM TB_CATE_4SRCH
+				<if test="cateCd != null and cateCd == cate4No">
+				WHERE EXISTS (
+					SELECT 1 FROM (
+						SELECT COUNT(*) AS CATE_CNT
+						FROM (
+							SELECT CATE_NO
+							FROM TB_CATE_GOODS
+							WHERE GOODS_CD = #{goodsCd}
+							AND CATE_NO IN (
+							    	SELECT LEAF_CATE_NO
+									FROM TB_CATE_4SRCH
+									WHERE CATE3_NO = #{cate3No}
+							)
+						) ALIAS_FOR_SUBQUERY
+					) ALIAS_FOR_SUBQUERY
+					<![CDATA[WHERE CATE_CNT < 2 ]]>
+				)
+				</if>
+				UNION ALL
+				SELECT CATE4_NO AS CATE_CD
+				, CATE1_NO
+				, CATE2_NO
+				, CATE3_NO
+				, CATE4_NO
+				, CATE_TYPE
+				FROM TB_CATE_4SRCH
+			) ALIAS_FOR_SUBQUERY
+			<if test="cateCd != null and cate1No == cateCd">
+				WHERE CATE1_NO = #{cateCd}
+			</if>
+			<if test="cateCd != null and cate2No == cateCd">
+				WHERE CATE2_NO = #{cateCd}
+			</if>
+			<if test="cateCd != null and cate3No == cateCd">
+				WHERE CATE3_NO = #{cateCd}
+			</if>
+			<if test="cateCd != null and cate4No == cateCd">
+				WHERE CATE4_NO = #{cateCd}
+			</if>
+			<if test="cateCd == null or cateCd == ''">
+				WHERE CATE_TYPE = 'G031_10'
+			</if>
+		)
+		</otherwise>
+		</choose>
+	</delete>
 </mapper>

+ 49 - 0
src/main/webapp/WEB-INF/views/display/GoodsCategoryForm.html

@@ -549,6 +549,55 @@
 			}
 		});
 
+		// 전시카테고리 삭제
+		$("#btnCateDelete").on("click", function(){
+			var data = gridCategoryOptions.api.getSelectedRows();
+			if(data.length == 0){
+				mcxDialog.alert('삭제할 카테고리를 선택하세요.');
+				return false;
+			}
+
+			var goodsCd = '';
+			var cateCdArr = [];
+			var cateCd1Arr = [];
+			var cateCd2Arr = [];
+			var cateCd3Arr = [];
+			var cateCd4Arr = [];
+			var cateTypeArr = [];
+			data.forEach(function(row){
+				cateCdArr.push(row.cateCd);
+				cateCd1Arr.push(row.cate1No);
+				cateCd2Arr.push(row.cate2No);
+				cateCd3Arr.push(row.cate3No);
+				cateCd4Arr.push(row.cate4No);
+				goodsCd = row.goodsCd;
+				cateTypeArr.push(row.cateType);
+			});
+
+			applyData = {cateCdArr : cateCdArr
+				, cateCd1Arr : cateCd1Arr
+				, cateCd2Arr : cateCd2Arr
+				, cateCd3Arr : cateCd3Arr
+				, cateCd4Arr : cateCd4Arr
+				, goodsCd : goodsCd
+				, cateTypeArr : cateTypeArr
+			};
+
+			var jsonData = JSON.stringify(applyData);
+			mcxDialog.confirm('삭제하시겠습니까?', {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function(){
+					gagajf.ajaxJsonSubmit($('#deleteForm').prop('action'), jsonData, fnGoodsCateDeleteCallBack);
+				}
+			});
+		});
+
+		var fnGoodsCateDeleteCallBack = function(){
+			$('#btnCateInit').click();
+			fnDisplayCategorySearch();
+		};
+
 		$(document).ready(function() {
 			cfnCreateCalendar('#sellTerms', 'stDate', 'edDate', true, '기간', 'X');
 			// Create a agGrid