Sfoglia il codice sorgente

기획전조회팝업

sowon4187 5 anni fa
parent
commit
bf237ffc26

+ 38 - 5
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -1401,20 +1401,38 @@ public class TsaMarketingController extends TsaBaseController {
 			param.setConditionList(param.getCondition().replaceAll("\r", "").split("\n"));
 		}
 		
-		param.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
+//		param.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
 		param.setPageable(new TscPageRequest(param.getPageNo() - 1, param.getPageSize()));
 		param.getPageable().setTotalCount(planService.getPlanListCnt(param));
 		
+		
 		Collection<Plan> planList = planService.getPlanList(param);
 		
 		result.set("pageing", param);
 		result.set("planList", planList);
 
-		//log.debug("dataList: {}", planList);
+		log.debug("dataList: {}", planList);
+		
 
 		return result;
 	}
 	
+	/**
+	 * 기획전관리 목록
+	 *
+	 * @param
+	 * @return 기획전 팝업 목록
+	 * @author sowon
+	 * @since 2021. 2. 16
+	 */
+	@PostMapping("/planning/listPop")
+	@ResponseBody
+	public Collection<Plan> getPlanListPop(@RequestBody Plan param) {
+		//param.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
+		Collection<Plan> planList = planService.getPlanList(param);
+		return planList;
+	}
+	
 	/**
 	 * 기획전관리 목록
 	 *
@@ -1464,9 +1482,24 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @author sowon
 	 * @since 2021. 2. 15
 	 */
-	@GetMapping("/planning/list/popup/form")
-	public ModelAndView planPopup() {
-		ModelAndView mav = new ModelAndView("marketing/PlanPopupForm");
+	@GetMapping("/planning/list/popup")
+	public ModelAndView planPopup(Plan plan) {
+		ModelAndView mav = new ModelAndView();
+		
+		// 웹/모바일 구분
+		mav.addObject("wmGbList", rendererService.getCommonCodeList("G093", "Y"));
+
+		// 사이트 목록
+		mav.addObject("siteList", rendererService.getCommonCodeList("G000", "Y"));
+
+		// 사용여부
+		mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
+
+		// 파라메터
+		mav.addObject("params", plan);
+		
+		mav.setViewName("marketing/PlanPopupForm");
+		
 		return mav;
 	}
 

+ 6 - 7
src/main/java/com/style24/persistence/mybatis/shop/TsaPlan.xml

@@ -170,17 +170,16 @@
 		AND    PLAN_SQ = #{planSq}
 		</if>
 		<if test="planNm != null and planNm != ''">
-		AND    PLAN_NM LIKE UPPER('%' || #{planNm} || '%')
+		AND    UPPER(PLAN_NM) LIKE CONCAT('%', #{planNm},'%') 
 		</if>
 		
 		<if test="condition != null and condition != ''">
 		<choose>
 			     <when test="search != null and search == 'searchPlanNm'">
-		AND    (
+		AND  
 		        <foreach collection="conditionList" item="item" index="index" separator="or">
 		        UPPER(PLAN_NM) LIKE CONCAT('%',UPPER(#{item}),'%') 
 		        </foreach>
-		       )
 	         </when>
 	          <when test="search != null and search == 'searchPlanSq'">
  		AND 		 
@@ -206,16 +205,16 @@
 		AND    TEMPLATE_TYPE = #{templateType}
 		</if>
 		<if test="dispStdt != null and dispStdt != ''">
-		AND    DISP_EDDT <![CDATA[>=]]> DATE_FORMAT(#{dispStdt}, 'YYYY-MM-DD')
+		AND    DISP_EDDT <![CDATA[>=]]> DATE_FORMAT(#{dispStdt}, '%Y-%m-%d %H:%i:%S')
 		</if>
 		<if test="dispEddt != null and dispEddt != ''">
-		AND    DISP_STDT <![CDATA[<=]]> DATE_FORMAT(#{dispEddt}, 'YYYY-MM-DD') + 0.99999
+		AND    DISP_STDT <![CDATA[<=]]> DATE_FORMAT(#{dispEddt}, '%Y-%m-%d %H:%i:%S')
 		</if>
 		<if test="popupDispStdt != null and popupDispStdt != ''">
-		AND    DISP_EDDT <![CDATA[>=]]> DATE_FORMAT(#{popupDispStdt}, 'YYYY-MM-DD')
+		AND    DISP_EDDT <![CDATA[>=]]> DATE_FORMAT(#{popupDispStdt}, '%Y-%m-%d %H:%i:%S')
 		</if>
 		<if test="popupDispEddt != null and popupDispEddt != ''">
-		AND    DISP_STDT <![CDATA[<=]]> DATE_FORMAT(#{popupDispEddt}, 'YYYY-MM-DD') + 0.99999
+		AND    DISP_STDT <![CDATA[<=]]> DATE_FORMAT(#{popupDispEddt}, '%Y-%m-%d %H:%i:%S')
 		</if>
 	</sql>
 	

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

@@ -236,7 +236,7 @@
 	var fnPlanWebRegisterPopup = function() {
 		var actionUrl = "/marketing/planning/webdetail/form?mode=N";
 		cfnOpenModalPopup(actionUrl,'popupPlanWebDetail');
-	}
+	} 
 
 	// 웹 수정 팝업
 	var fnEventWebDetailPopup = function(planSq) {
@@ -257,6 +257,7 @@
  		//document.location.href = _PAGE_CUSTOMER_INFO;
 	}
 
+		
 	// 초기화 클릭시
 	$('#btnInit').on('click', function() {
 		fnInit();

+ 89 - 57
src/main/webapp/WEB-INF/views/marketing/PlanPopupForm.html

@@ -14,7 +14,7 @@
  *******************************************************************************
  -->
 
-<div class="modalPopup" data-width="1200">
+<div class="modalPopup" data-width="1200" id="popupPlan">
 
 	<div class="panelStyle" style="height: 750px;">
 		<div class="panelTitle">
@@ -27,7 +27,7 @@
 
 		<div class="panelContent">
 			<form id="popupPlanSearchForm" name="popupPlanSearchForm" action="#"
-				th:action="@{'/marketing/planning/list'}"
+				th:action="@{'/marketing/planning/listPop'}"
 				onsubmit="$('#btnPlanPopupSearch').trigger('click'); return false;">
 				<table class="frmStyle">
 					<colgroup>
@@ -44,11 +44,11 @@
 					<tbody>
 						<tr>
 							<th>사이트</th>
-						<!-- 	<td><label th:if="${siteList}"
+						 	<td><label th:if="${siteList}"
 								th:each="oneData, status : ${siteList}"> <input
 									type="checkbox" name="siteCds" th:value="${oneData.cd}"
 									th:text="${oneData.cdNm}" />
-							</label></td> -->
+							</label></td>
 
 							<th>기획전명</th>
 							<td><input type="text" name="planNm" id="planNm" /></td>
@@ -72,46 +72,47 @@
 									<option value="P">기획전</option>
 									<option value="E">이벤트</option>
 							</select></td>
+							
+							<th>오픈여부</th>
+							<td><select name="openYn">
+									<option value="">전체</option>
+									<option th:if="${useYnList}"
+										th:each="oneData, status : ${useYnList}"
+										th:value="${oneData.cd}"
+										th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+							</select></td>
 
-							<th>기획전템플릿유형</th>
+							<!-- <th>기획전템플릿유형</th>
 							<td colspan="3"><select name="templateType">
 									<option value="">전체</option>
 									<option value="H">HTML</option>
 									<option value="T">TEXT</option>
-							</select></td>
+							</select></td> -->
 						</tr>
 
 						<tr>
 							<th>진행기간</th>
 							<td colspan="3" id="popupPlanTerms"></td>
 
-							<th>오픈여부</th>
-							<!-- <td><select name="openYn">
-									<option value="">전체</option>
-									<option th:if="${useYnList}"
-										th:each="oneData, status : ${useYnList}"
-										th:value="${oneData.cd}"
-										th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
-							</select></td> -->
+							
 
-							<th class="dashR">등록자</th>
-							<td class="dashR"><input type="text" name="regId" id="regId" />
+							<th>등록자</th>
+							<td><input type="text" name="regId" id="regId" />
 							</td>
 						</tr>
 					</tbody>
 				</table>
 				<ul class="panelBar">
-					<li class="center"><input type="button" value="초기화"
-						class="btn btn-gray btn-lg" id="btnReset" onclick="fnReset();" />
-						<input type="button" value="조회" class="btn btn-base btn-lg"
-						id="btnPlanPopupSearch" /></li>
+					<li class="center">
+						<input type="button" value="초기화" class="btn btn-gray btn-lg" id="btnInitPop"/>
+						<input type="button" value="조회" class="btn btn-base btn-lg"	 id="btnPlanPopupSearch" />
+					</li>
 				</ul>
 			</form>
 		</div>
 		<!-- 리스트 영역 -->
 		<div class="panelContent">
-			<div id="gridPlanList" style="width: 100%; height: 470px"
-				class="ag-theme-balham"></div>
+			<div id="gridListPop" style="width: 100%; height: 400px;" class="ag-theme-balham"></div>
 		</div>
 		<!-- //리스트 영역 -->
 
@@ -119,52 +120,56 @@
 		<ul class="panelBar">
 			<li class="right">
 				<button type="button" class="btn btn-info btn-lg"
-					id="btnConfirmPlan">확인</button>
+					id="btnPlanPopupApply">적용</button>
 			</li>
 		</ul>
 
 	</div>
 </div>
-<!-- <script th:inline="javascript">
+<script th:inline="javascript">
 /*<![CDATA[*/
 
-	var siteList = cfnConvertToArray([[${siteList}]]);
+	var siteCdList = gagajf.convertToArray([[${siteList}]]);
 	var wmGbList = {"A":"ALL", "P":"웹", "M":"모바일"};
 	var templateTypeList = {"H":"HTML", "T":"TEXT"};
 	var planGbList = {"P":"기획전", "E":"이벤트"};
+	var planList = ([[${planList}]]);
+	
+	// 초기화 클릭시
+	$('#btnInitPop').on('click', function() {
+		fnInit();
+	});
+	
+	var fnInit = function(){
+		$('#popupPlanSearchForm')[0].reset();
+	}
 
-	var columnDefsPopupPlan = [
-// 		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-// 		{headerName: "미리보기"		, field:'plan'		, width:100, cellClass: 'text-center',
-// 			cellRenderer: function(params) { return '<a href="javascript:void(0);" onclick="fnPreview(\'' + params.data.planSq + '\');">' + '미리보기' + '</a>'; }
-// 		},
-		{headerName: "기획전번호"		, field:'planSq'	, width:100, cellClass: 'text-center',
-// 			cellRenderer: function(params) { return '<a href="javascript:void(0);">' + params.value + '</a>'; }
-		},
+	var columnDefs = [
+ 		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+ 		{headerName: "미리보기"		, field:'plan'		, width:100, cellClass: 'text-center',
+ 			cellRenderer: function(params) { return '<a href="javascript:void(0);" onclick="fnPreview(\'' + params.data.planSq + '\');">' + '미리보기' + '</a>'; }
+ 		},
+ 		{headerName: "기획전번호"		, field:'planSq'	, width:100, cellClass: 'text-center'},
+ 		{headerName: "기획전명"		, field:'planNm'	, width:300, cellClass: 'text-left'},
+ 		{headerName: "서브제목"		, field:'dtlTitle1'	, width:300 , cellClass: 'text-center'},
 		{headerName: "사이트"			, field:'siteCd'	, width:100, cellClass: 'text-center',
-			 valueFormatter: function (params) { return gagaAgGrid.lookupValue(siteList, params.value); }
+ 			cellEditor: 'agRichSelectCellEditor',
+			cellEditorParams: { values: gagaAgGrid.extractValues(siteCdList) },
+			valueFormatter: function (params) { return gagaAgGrid.lookupValue(siteCdList, params.value); },
+			valueParser: function (params) { return gagaAgGrid.lookupKey(siteCdList, params.newValue); }
 		},
-		{headerName: "기획전명"		, field:'planNm'	, width:300, cellClass: 'text-left',
-// 			cellRenderer: function(params) { return '<a href="javascript:void(0);">' + params.value + '</a>'; }
-		},
-		{headerName: "기획전구분"		, field:'planGb'	, width:100, cellClass: 'text-center',
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(planGbList, params.value); }
-		},
-		{headerName: "기획전템플릿유형"	, field:'templateType'	, width:100, cellClass: 'text-center',
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(templateTypeList, params.value); }
-		},
-		{headerName: "전시순서"		, field:'dispOrd'	, width:100, cellClass: 'text-right' },
+		{headerName: "기획전구분"		, field:'planGb'	, width:100, cellClass: 'text-center'},
+		{headerName: "기획전템플릿유형"	, field:'templateType'	, width:100, cellClass: 'text-center'},
+		/* {headerName: "전시순서"		, field:'dispOrd'	, width:100, cellClass: 'text-right' }, */
 		{headerName: "진행시작일시"		, field:'dispStdt'	, width:150, cellClass: 'text-center'},
 		{headerName: "진행종료일시"		, field:'dispEddt'	, width:150, cellClass: 'text-center'},
-		{headerName: "프론트구분"	, field:'frontGb'	, width:120, cellClass: 'text-center',
-			 valueFormatter: function (params) { return gagaAgGrid.lookupValue(wmGbList, params.value); }
-		},
+		{headerName: "프론트구분"	, field:'frontGb'	, width:120, cellClass: 'text-center'	},
 		{headerName: "오픈여부"		, field:'openYn'	, width:80 , cellClass: 'text-center'},
-		{headerName: "등록자"			, field:'regId'		, width:100, cellClass: 'text-center'},
+		{headerName: "등록자"			, field:'regNm'		, width:100, cellClass: 'text-center'},
 		{headerName: "등록일"			, field:'regDt'		, width:150, cellClass: 'text-center'},
 	];
 
-	var gridOptionsPopupPlan = gagaAgGrid.getGridOptions(columnDefsPopupPlan);
+	var gridOptionsPopupPlan = gagaAgGrid.getGridOptions(columnDefs);
 	gridOptionsPopupPlan.rowSelection = 'single';
 	
 	// 셀 클릭 이벤트
@@ -175,15 +180,21 @@
 		
 	}
 	
+	// 미리보기
+	var fnPreview = function(planSq) {
+		var _wmall = [[${@environment.getProperty('domain.pastel')}]];
+		window.open(_wmall + '/planning/detail/form?planSq=' + planSq + '&adminPreview=Y', '_blank');
+ 		//document.location.href = _PAGE_CUSTOMER_INFO;
+	}
+	
 	// 조회 버튼 클릭 시
 	$('#btnPlanPopupSearch').on('click', function() {
 		var formId = '#popupPlanSearchForm';
 		gagaAgGrid.fetch($(formId).prop('action'), gridOptionsPopupPlan, formId);
 	});
-	
+		
 	// 적용 버튼 클릭 시
 	$('#btnPlanPopupApply').on('click', function() {
-		var callback = [[${params.callBackFun}]];
 		
 		var selectedData = gagaAgGrid.selectedRowData(gridOptionsPopupPlan);
 		
@@ -192,6 +203,8 @@
 			return
 		}
 		
+		var callback = [[${params.callBackFun}]];
+		
 		var jsonData = JSON.stringify(selectedData);
 
 		if ( typeof callback != 'undefined' && callback) {
@@ -205,20 +218,39 @@
 				}
 			}
 			
-			uifnPopClose('popupPlan'); //20191105
+			uifnPopupClose('popupPlan');
 		}
 	});
 	
 	$(document).ready(function() {
+		gagaAgGrid.createGrid('gridListPop', gridOptionsPopupPlan);
 		cfnCreateCalendar('#popupPlanTerms', 'popupDispStdt', 'popupDispEddt', false);
 		gagajf.setDate('popupDispStdt', 'popupDispEddt', '7d');
-		
-		gagaAgGrid.createGrid('gridListPopupPlan', gridOptionsPopupPlan);
-
-		uifnFitGrid('auto');
 	});
 	
+	
+	// 기획전 리스트 팝업============================================================================
+	/* var fnPlanSearch = function(sub){
+		if (sub == "View"){
+			cfnOpenPlanPopup('fnSetPlanSqView');
+		}else{
+			cfnOpenPlanPopup('fnSetPlanSq');
+		}
+	}
+
+	// 팝업 등록 기획전
+	var fnSetPlanSq = function(result) {
+		$('#planListSearchForm input[name=planSq]').val(result[0].planSq);
+	}
+
+	//미리보기 기획전
+	var fnSetPlanSqView = function(result) {
+		$('#planSqView').val(result[0].planSq);
+	}
+ */
+	
+	//=========================================================================================
 /*]]>*/
-</script> -->
+</script>
 
 </html>

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

@@ -334,7 +334,7 @@
 													<span class="buttonSpan">
 														<button type="button"
 															class="btn btnRight btn-success btn-lg"
-															id="btnAddCorner">업체 추가</button>
+															id="btnAddCorner">코너 추가</button>
 														<button type="button"
 															class="btn btnRight btn-success btn-lg"
 															id="btnDeleteCorner">선택삭제</button>
@@ -507,7 +507,6 @@
 						<th class="dashR">사이트<i class="star"></i></th>
 						<td class="dashR">
 							<select name="siteCd" required="required" data-valid-name="사이트">
-								<option value="">선택</option>
 								<option th:if="${siteList}" th:each="oneData, status : ${siteList}" th:value="${oneData.cd}" th:text="|${oneData.cdNm}|"></option>
 							</select>
 						</td>