瀏覽代碼

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

bin2107 5 年之前
父節點
當前提交
f76d7c8650

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

@@ -216,4 +216,12 @@ public interface TsaDisplayDao {
 	 * @since 2021. 2. 15
 	 */
 	int getCategoryGoodsDispOrd(CategoryGoods categoryGoods);
+
+	/**
+	 * 카테고리별상품전시 상품추가
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 2. 15
+	 */
+	void insertCategoryGoods(CategoryGoods categoryGoods);
 }

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

@@ -308,4 +308,33 @@ public class TsaDisplayService {
 		}
 	}
 
+	/**
+	 * 카테고리별상품전시 상품삭제
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 2. 15
+	 */
+	public void deleteCategoryGoods(CategoryGoods categoryGoods){
+		for(int i=0; i<categoryGoods.getGoodsList().size(); i++){
+			categoryGoods.setGoodsCd(categoryGoods.getGoodsList().get(i).getGoodsCd());
+			categoryGoods.setCateNo(categoryGoods.getGoodsList().get(i).getCateNo());
+			displayDao.deleteCategoryGoods(categoryGoods);
+		}
+	}
+
+	/**
+	 * 카테고리별상품전시 상품추가
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 2. 15
+	 */
+	public void insertCategoryGoods(CategoryGoods categoryGoods){
+		for(int i=0; i<categoryGoods.getMultiGoods().length; i++){
+			categoryGoods.setGoodsCd(categoryGoods.getMultiGoods()[i]);
+			int dispOrd = displayDao.getCategoryGoodsDispOrd(categoryGoods);
+			categoryGoods.setDispOrd(dispOrd);
+			displayDao.insertCategoryGoods(categoryGoods);
+		}
+	}
+
 }

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

@@ -358,4 +358,32 @@ public class TsaDisplayController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 
+	/**
+	 * 카테고리별상품전시 상품삭제
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 2. 15
+	 */
+	@PostMapping("/category/goods/delete")
+	@ResponseBody
+	public GagaResponse deleteCategoryGoods(@RequestBody CategoryGoods categoryGoods){
+		categoryGoods.setRegNo(TsaSession.getInfo().getUserNo());
+		displayService.deleteCategoryGoods(categoryGoods);
+		return super.ok(message.getMessage("SUCC_0003"));
+	}
+
+	/**
+	 * 카테고리별상품전시 상품추가
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 2. 15
+	 */
+	@PostMapping("/category/goods/save")
+	@ResponseBody
+	public GagaResponse insertCategoryGoods(@RequestBody CategoryGoods categoryGoods){
+		categoryGoods.setRegNo(TsaSession.getInfo().getUserNo());
+		displayService.insertCategoryGoods(categoryGoods);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
+
 }

+ 4 - 0
src/main/java/com/style24/persistence/domain/CategoryGoods.java

@@ -1,5 +1,6 @@
 package com.style24.persistence.domain;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 import com.style24.persistence.TscPageRequest;
 import lombok.Data;
@@ -48,6 +49,9 @@ public class CategoryGoods extends TscBaseDomain {
 	private String addCateNo;
 	List<CategoryGoods> goodsList;
 
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiGoods;
+
 	// Pagination
 	private TscPageRequest pageable;
 	private int pageNo = 1;

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

@@ -1223,4 +1223,28 @@
 		AND CATE_NO = #{cateNo}
 		AND GOODS_CD = #{goodsCd}
 	</delete>
+
+	<!-- 카테고리별 상품추가 저장 -->
+	<insert id="insertCategoryGoods" parameterType="GoodsCategory">
+		/* TsaDisplay.insertCategoryGoods */
+		INSERT INTO TB_CATE_GOODS(
+								  CATE_NO
+								 ,GOODS_CD
+								 ,DISP_ORD
+								 ,REG_NO
+								 ,REG_DT
+		)
+		VALUES (
+				#{cateNo}
+			   	,#{goodsCd}
+			    ,(SELECT	IFNULL((MAX(DISP_ORD) + 1), 1) AS DISP_ORD
+				 FROM	TB_CATE_GOODS ALIAS_FOR_SUBQUERY
+				 WHERE   CATE_NO = #{cateNo})
+			   	,#{regNo}
+			    ,NOW()
+		)
+		ON DUPLICATE KEY UPDATE
+				REG_NO = #{regNo}
+				,REG_DT = NOW()
+	</insert>
 </mapper>

+ 51 - 2
src/main/webapp/WEB-INF/views/display/CategoryGoodsForm.html

@@ -102,8 +102,8 @@
 		<ul class="panelBar">
 			<li class="aR" id="btnGoodsEdit" style="display:none">
 				<button type="button" class="btn btn-primary btn-lg leafCateBtn" id="btnAddGoods" style="display:none">상품추가</button>
-				<button type="button" class="btn btn-primary btn-lg" id="btnDispChange">순서변경</button>
-                <button type="button" class="btn btn-primary btn-lg" id="btnSelectTop">선택최상위로</button>
+				<!--<button type="button" class="btn btn-primary btn-lg" id="btnDispChange">순서변경</button>
+                <button type="button" class="btn btn-primary btn-lg" id="btnSelectTop">선택최상위로</button>-->
 				<button type="button" class="btn btn-danger btn-lg" id="btnSelectDel">선택삭제</button>
 			</li>
 		</ul>
@@ -211,6 +211,55 @@
 	let gridOptions = gagaAgGrid.getGridOptions(columnDefs1);
 	gridOptions.rowSelection = "multiple";
 
+	/**
+	 * 상품추가 버튼 클릭 시
+	 */
+	$("#btnAddGoods").bind('click', function(){
+		cfnOpenGoodsPopup("fnCategoryGoodsAdd");
+	});
+
+	var fnCategoryGoodsAdd = function (result){
+		mcxDialog.confirm('상품을 추가하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function () {
+				var multiGoods = [];
+				$.each(result, function(idx, item) {
+					multiGoods.push(item.goodsCd);
+				});
+
+				var data = {
+					mode : 'add'
+					,cateNo : $("#cateCd").val()
+					,multiGoods : multiGoods
+				}
+
+				var jsonData = JSON.stringify(data);
+				gagajf.ajaxJsonSubmit('/display/category/goods/save', jsonData, fnCategoryGoodsListSearch);
+				uifnPopupClose('popupGoods');
+			}
+		});
+	}
+
+	/**
+	 * 상품삭제 버튼 클릭 시
+	 */
+	$("#btnSelectDel").bind('click', function(){
+		var selectData = gridOptions.api.getSelectedRows();
+		if(selectData<1){
+			mcxDialog.alert("상품을 선택하세요.");
+			return false;
+		}
+
+		var data = {
+			mode : 'delete'
+			,goodsList : selectData
+		};
+
+		var jsonData = JSON.stringify(data);
+		gagajf.ajaxJsonSubmit('/display/category/goods/delete', jsonData, fnCategoryGoodsListSearch);
+	});
+
 	/**
 	 * 상품복사 버튼 클릭 시
 	 */