Przeglądaj źródła

카테고리별 상품관리

bin2107 5 lat temu
rodzic
commit
9a006143d3

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

@@ -176,4 +176,20 @@ public interface TsaDisplayDao {
 	 * @since 2021. 1. 18
 	 */
 	void deleteGoodsCategory(GoodsCategory goodsCategory);
+
+	/**
+	 * 카테고리별상품 건수 조회
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 27
+	 */
+	int getCategoryGoodsListCount(CategoryGoods categoryGoods);
+
+	/**
+	 * 카테고리별상품 리스트 조회
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 27
+	 */
+	Collection<CategoryGoods> getCategoryGoodsList(CategoryGoods categoryGoods);
 }

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

@@ -270,4 +270,23 @@ public class TsaDisplayService {
 		displayDao.deleteGoodsCategory(goodsCategory);
 	}
 
+	/**
+	 * 카테고리별상품 건수 조회
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 27
+	 */
+	public int getCategoryGoodsListCount(CategoryGoods categoryGoods) {
+		return displayDao.getCategoryGoodsListCount(categoryGoods);
+	}
+
+	/**
+	 * 카테고리별상품 리스트 조회
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 27
+	 */
+	public Collection<CategoryGoods> getCategoryGoodsList(CategoryGoods categoryGoods) {
+		return displayDao.getCategoryGoodsList(categoryGoods);
+	}
 }

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

@@ -321,4 +321,25 @@ public class TsaDisplayController extends TsaBaseController {
 
 		return mav;
 	}
+
+	/**
+	 * 카테고리별상품 조회
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 27
+	 */
+	@PostMapping("/category/goods/list")
+	@ResponseBody
+	public GagaMap getCategoryGoodsList(@RequestBody CategoryGoods categoryGoods) {
+		GagaMap result = new GagaMap();
+
+		categoryGoods.setRegNo(TsaSession.getInfo().getUserNo());	//엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
+		categoryGoods.setPageable(new TscPageRequest(categoryGoods.getPageNo() - 1, categoryGoods.getPageSize()));
+		categoryGoods.getPageable().setTotalCount(displayService.getCategoryGoodsListCount(categoryGoods));
+
+		result.set("pageing", categoryGoods);
+		result.set("categoryGoodsList", displayService.getCategoryGoodsList(categoryGoods));
+
+		return result;
+	}
 }

+ 6 - 1
src/main/java/com/style24/persistence/domain/CategoryGoods.java

@@ -1,6 +1,7 @@
 package com.style24.persistence.domain;
 
 import com.style24.persistence.TscBaseDomain;
+import com.style24.persistence.TscPageRequest;
 import lombok.Data;
 
 /**
@@ -15,7 +16,11 @@ public class CategoryGoods extends TscBaseDomain {
 
 	private Integer cateNo;		// 카테고리번호
 
-
+	// Pagination
+	private TscPageRequest pageable;
+	private int pageNo = 1;
+	private int pageSize = 50;
+	private int pageUnit = 10;
 	
 
 }

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

@@ -935,4 +935,57 @@
 		</otherwise>
 		</choose>
 	</delete>
+
+	<select id="getCategoryGoodsListCount" parameterType="CategoryGoods" resultType="int">
+		/* TsaDisplay.getCategoryGoodsListCount */
+		SELECT COUNT(*)
+		FROM ( SELECT A.GOODS_CD
+					, A.CATE_NO
+					, A.DISP_ORD
+					, A.REG_NO
+					, A.REG_DT
+			   FROM TB_CATE_GOODS A
+			   WHERE 1=1
+				 AND EXISTS ( SELECT 1
+							  FROM TB_CATE_4SRCH
+							  WHERE 1=1
+							  <if test='selLvl == "2"'>
+								AND CATE1_NO  = A.CATE_NO
+							  </if>
+							  <if test='selLvl != "2"'>
+								AND CATE1_NO  = #{cate1No}
+							    <if test='selLvl == "3"'>
+									AND CATE2_NO  = A.CATE_NO
+								</if>
+							    <if test='selLvl != "3"'>
+									AND CATE2_NO  = #{cate2No}
+							    	<if test='selLvl == "4"'>
+										AND CATE3_NO  = A.CATE_NO
+									</if>
+							    	<if test='selLvl == "5"'>
+										AND CATE3_NO  = #{cate3No}
+							    		AND CATE4_NO  = A.CATE_NO
+									</if>
+								</if>
+							  </if>
+				   )
+		) A
+		<if test="searchGb == null or searchGb =='BASIC'">
+			, TB_GOODS G
+		</if>
+		<if test="searchGb != null and searchGb =='EXCEL'">
+			, (SELECT G.*
+			, TMP_DISP_ORD
+			FROM TB_GOODS G
+			, (SELECT SEARCH_CD, MIN(DISP_ORD) AS TMP_DISP_ORD
+			FROM TB_SEARCH_DATA
+			WHERE REG_ID = #{regId}
+			GROUP BY SEARCH_CD
+			) D
+			WHERE G.GOODS_CD LIKE D.SEARCH_CD||'%'
+			OR G.SUPPLY_GOODS_CD LIKE D.SEARCH_CD||'%'
+			) G
+		</if>
+		WHERE A.GOODS_CD = G.GOODS_CD
+	</select>
 </mapper>

+ 72 - 9
src/main/webapp/WEB-INF/views/display/CategoryGoodsForm.html

@@ -185,6 +185,78 @@
 		}
 		$('#searchForm input[name=selLvl]').val(selLvl);
 
+		var data = { siteCd : 'G000_10'
+			, selLvl : selLvl
+			, cateGb : $('#searchForm select[name=cateGb]').val()
+			, cate1No : $('#searchForm select[name=cate1No]').val()
+			, cate2No : $('#searchForm select[name=cate2No]').val()
+			, cate3No : $('#searchForm select[name=cate3No]').val()
+			, cate4No : $('#searchForm select[name=cate4No]').val()
+		};
+
+		var jsonData = JSON.stringify(data);
+		gagajf.ajaxJsonSubmit('/display/category/list', jsonData, fnChangeCate);
+	}
+
+	// 조회하고 데이터 뿌려주기
+	var fnChangeCate = function (data){
+		let selLvl = Number($('#searchForm input[name=selLvl]').val()) + 1;
+		for (let i = 2; i <= 5; i++) {
+			if (i >= selLvl) {
+				$('#selCate' + i).html('<option value="">[카테고리' + (i - 1) + ']</option>');
+			}
+		}
+
+		let tag = '';
+		for (let i = 0; i < data.length; i++) {
+			if (data[i].useYn == 'Y') {
+				tag += '<option value="' + data[i].cateNo + '">[' + data[i].cateNo + '] ' + data[i].cateNm + '</option>';
+			}
+		}
+
+		$("#selCate" + selLvl).append(tag);
+		//$("#btnNew").click();
+
+		// 대카테고리 이상이면 상품 조회해서 그리드
+		if(selLvl > 1){
+			var data = { siteCd : 'G000_10'
+				, selLvl : selLvl
+				, cateGb : $('#searchForm select[name=cateGb]').val()
+				, cate1No : $('#searchForm select[name=cate1No]').val()
+				, cate2No : $('#searchForm select[name=cate2No]').val()
+				, cate3No : $('#searchForm select[name=cate3No]').val()
+				, cate4No : $('#searchForm select[name=cate4No]').val()
+			};
+
+			var jsonData = JSON.stringify(data);
+			gagajf.ajaxJsonSubmit('/display/category/goods/list', jsonData, fnCategoryGoodsListCallBack);
+		}
+	}
+
+	// 카테고리별 상품 조회하고 데이터 그리드
+	var fnCategoryGoodsListCallBack = function (data){
+
+	}
+
+	// 신규
+	$('#btnNew').on('click', function(){
+		//$("#detailForm")[0].reset();
+// 		$("#detailForm input[name=selLvl]").val('');
+		for (let i = 2; i <= 5; i++) {
+			$("#cateLvl" + i).show();
+		}
+	});
+
+	var fnChangeSearchCondition2 = function(val, selLvl) {
+		if (gagajf.isNull(val)) {
+			if (selLvl > 1) {
+				selLvl = selLvl - 1;
+			} else {
+				selLvl = 1;
+			}
+		}
+		$('#searchForm input[name=selLvl]').val(selLvl);
+
 		// Fetch data
 		gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm', function(data) {
 			let selLvl = Number($('#searchForm input[name=selLvl]').val()) + 1;
@@ -247,15 +319,6 @@
 		});
 	}
 
-	// 신규
-	$('#btnNew').on('click', function(){
-		$("#detailForm")[0].reset();
-// 		$("#detailForm input[name=selLvl]").val('');
-		for (let i = 2; i <= 5; i++) {
-			$("#cateLvl" + i).show();
-		}
-	});
-
 	// 저장
 	$('#btnSave').on('click', function() {
 		// 입력 값 체크

+ 2 - 2
src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html

@@ -517,8 +517,8 @@
 			gridOptionsApplyBurdenList.api.setRowData(tmtbBurdenList);
 
 			$('#moreBetterForm input[name=tmtbNm]').val(tmtbMstInfo.tmtbNm);
-			$('#moreBetterForm input[name=tmtbStdt]').val(tmtbMstInfo.tmtbStdt);
-			$('#moreBetterForm input[name=tmtbEddt]').val(tmtbMstInfo.tmtbEddt);
+			$('#moreBetterForm input[name=eventStdt]').val(tmtbMstInfo.eventStdt);
+			$('#moreBetterForm input[name=eventEddt]').val(tmtbMstInfo.eventEddt);
 			$('#moreBetterForm #regInfo').text(tmtbMstInfo.regNm + "(" + tmtbMstInfo.regDt + ")");
 			$('#moreBetterForm #updInfo').text(tmtbMstInfo.updNm + "(" + tmtbMstInfo.updDt + ")");
 			$("input:radio[name='disTmtbStat']:radio[value="+tmtbMstInfo.tmtbStat+"]").prop('checked', true); // 선택하기