사용자 left munu 수정

This commit is contained in:
leejunho 2024-10-02 12:18:05 +09:00
parent 786a24fbbf
commit 45e8faf6a7
5 changed files with 504 additions and 12 deletions

View File

@ -35,6 +35,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import org.apache.poi.util.SystemOutLogger;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
@ -831,6 +832,16 @@ public class MainController {
model.addAttribute("depth2CntList", depth2CntList); model.addAttribute("depth2CntList", depth2CntList);
model.addAttribute("whereAmIVO", whereAmIVO); model.addAttribute("whereAmIVO", whereAmIVO);
MenuManageJTreeVO whereAmIVO_dep2 = new MenuManageJTreeVO();
whereAmIVO_dep2 = whereAmIList.stream().filter(t ->
menuManageVO.getMenuNo().equals(t.getMenuNo())
).findFirst().get();
if("2".equals(whereAmIVO_dep2.getDepth())) {
model.addAttribute("whereAmIVO_dep2", whereAmIVO_dep2.getMenuNo());
}else {
model.addAttribute("whereAmIVO_dep2", whereAmIVO_dep2.getUpperMenuId());
}
model.addAttribute("whereAmIList", whereAmIList); model.addAttribute("whereAmIList", whereAmIList);
List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO); List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO);

View File

@ -0,0 +1,279 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="Banner">
<typeAlias alias="Banner" type="kcc.com.uss.ion.bnr.service.Banner"/>
<typeAlias alias="BannerVO" type="kcc.com.uss.ion.bnr.service.BannerVO"/>
<typeAlias alias="sortVO" type="kcc.com.uss.ion.pwm.service.SortVO"/>
<resultMap id="banner" class="kcc.com.uss.ion.bnr.service.BannerVO">
<result property="bannerId" column="BANNER_ID" columnIndex="1"/>
<result property="bannerNm" column="BANNER_NM" columnIndex="2"/>
<result property="linkUrl" column="LINK_URL" columnIndex="3"/>
<result property="bannerImage" column="BANNER_IMAGE" columnIndex="4"/>
<result property="bannerImageFile" column="BANNER_IMAGE_FILE" columnIndex="5"/>
<result property="bannerDc" column="BANNER_DC" columnIndex="6"/>
<result property="sortOrdr" column="SORT_ORDR" columnIndex="7"/>
<result property="reflctAt" column="REFLCT_AT" columnIndex="8"/>
<result property="userId" column="FRST_REGISTER_ID" columnIndex="9"/>
<result property="regDate" column="FRST_REGIST_PNTTM" columnIndex="10"/>
<result property="delSttus" column="DEL_STTUS" columnIndex="11"/>
</resultMap>
<resultMap id="fileList" class="kcc.com.cmm.service.FileVO">
<result property="atchFileId" column="ATCH_FILE_ID" columnIndex="1"/>
<result property="fileCn" column="FILE_CN" columnIndex="2"/>
<result property="fileExtsn" column="FILE_EXTSN" columnIndex="3"/>
<result property="fileMg" column="FILE_SIZE" columnIndex="4"/>
<result property="fileSn" column="FILE_SN" columnIndex="5"/>
<result property="fileStreCours" column="FILE_STRE_COURS" columnIndex="6"/>
<result property="orignlFileNm" column="ORIGNL_FILE_NM" columnIndex="7"/>
<result property="streFileNm" column="STRE_FILE_NM" columnIndex="8"/>
<result property="creatDt" column="CREAT_DT" columnIndex="9"/>
</resultMap>
<resultMap id="bannerImage" class="kcc.com.uss.ion.bnr.service.BannerVO">
<result property="bannerImageFile" column="BANNER_IMAGE_FILE" columnIndex="1"/>
<result property="linkUrl" column="LINK_URL" columnIndex="2"/>
</resultMap>
<resultMap id="bannerImageFile" class="kcc.com.cmm.service.FileVO">
<result property="fileStreCours" column="FILE_STRE_COURS" columnIndex="1"/>
<result property="streFileNm" column="STRE_FILE_NM" columnIndex="2"/>
</resultMap>
<select id="bannerDAO.selectBannerList" parameterClass="BannerVO" resultClass="BannerVO">
SELECT * FROM (
SELECT ROWNUM AS RN, PG.* FROM (
SELECT
BANNER_ID AS BANNERID,
BANNER_NM AS BANNERNM,
LINK_URL AS LINKURL,
BANNER_IMAGE AS BANNERIMAGE,
BANNER_IMAGE_FILE AS BANNERIMAGEFILE,
BANNER_DC AS BANNERDC,
SORT_ORDR AS SORTORDR,
REFLCT_AT AS REFLCTAT,
(
SELECT
USER_NM
FROM
LETTNEMPLYRINFO
WHERE
EMPLYR_ID = FRST_REGISTER_ID
) REGISTERID,
TO_CHAR(FRST_REGIST_PNTTM,'YYYY-MM-DD') AS REGDATE
, DEL_STTUS AS DELSTTUS
FROM
COMTNBANNER
WHERE
1=1
AND SE_CD = '01'
AND DEL_STTUS != 'Y'
ORDER BY
SORT_ORDR ASC
) PG
WHERE <![CDATA[ ROWNUM <= #firstIndex# + #recordCountPerPage# ]]> <!-- 페이징 -->
) <![CDATA[ WHERE RN > #firstIndex# ]]> <!-- 페이징 -->
</select>
<select id="bannerDAO.selectBannerListTotCnt" parameterClass="BannerVO" resultClass="int">
SELECT COUNT(*) totcnt
FROM COMTNBANNER
WHERE 1=1
<isNotEqual property="delSttus" compareValue="Y">
AND DEL_STTUS != 'Y'
</isNotEqual>
<isNotEmpty property="seCd">
AND SE_CD = #seCd#
</isNotEmpty>
<isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="">
AND ( BANNER_NM LIKE CONCAT ('%', #searchKeyword#,'%')
OR LINK_URL LIKE CONCAT ('%', #searchKeyword#,'%')
)
</isEqual>
<isEqual property="searchCondition" compareValue="1">
AND BANNER_NM LIKE CONCAT ('%', #searchKeyword#,'%')
</isEqual>
<isEqual property="searchCondition" compareValue="2">
AND LINK_URL LIKE CONCAT ('%', #searchKeyword#,'%')
</isEqual>
</isNotEmpty>
</select>
<select id="bannerDAO.selectBanner" resultClass="BannerVO">
<![CDATA[
SELECT BANNER_ID AS BANNERID,
BANNER_NM AS BANNERNM,
LINK_URL AS LINKURL,
BANNER_IMAGE AS BANNERIMAGE,
BANNER_IMAGE_FILE AS BANNERIMAGEFILE,
BANNER_DC AS BANNERDC,
SORT_ORDR AS SORTORDR,
SORT_ORDR AS sort,
REFLCT_AT AS REFLCTAT,
DATE_FORMAT(LAST_UPDT_PNTTM, '%Y-%m-%d %h:%m:%s') AS REGDATE ,
DEL_STTUS AS DELSTTUS ,
SE_CD AS SECD ,
ISTARGET,
(SELECT USER_NM FROM LETTNEMPLYRINFO WHERE EMPLYR_ID = FRST_REGISTER_ID) REGISTERID
FROM COMTNBANNER
WHERE BANNER_ID = #bannerId#
]]>
</select>
<insert id="bannerDAO.insertBanner" parameterClass="Banner">
INSERT INTO COMTNBANNER
(BANNER_ID,
BANNER_NM,
LINK_URL,
BANNER_IMAGE,
BANNER_IMAGE_FILE,
BANNER_DC,
SORT_ORDR,
REFLCT_AT,
FRST_REGISTER_ID,
DEL_STTUS,
FRST_REGIST_PNTTM,
LAST_UPDT_PNTTM,
<isNotEmpty property="seCd">
SE_CD,
</isNotEmpty>
ISTARGET)
VALUES (#bannerId#,
#bannerNm#,
#linkUrl#,
#bannerImage#,
#bannerImageFile#,
#bannerDc#,
#sortOrdr#,
#reflctAt#,
#userId#,
#delSttus#,
now(),
now(),
<isNotEmpty property="seCd">
#seCd#,
</isNotEmpty>
#istarget#)
</insert>
<update id="bannerDAO.updateBanner" parameterClass="Banner">
UPDATE COMTNBANNER
SET BANNER_NM = #bannerNm#,
LINK_URL = #linkUrl#,
<isEqual property="isAtchFile" compareValue="true">
BANNER_IMAGE = #bannerImage#,
BANNER_IMAGE_FILE = #bannerImageFile#,
</isEqual>
BANNER_DC = #bannerDc#,
SORT_ORDR = #sortOrdr#,
REFLCT_AT = #reflctAt#,
LAST_UPDUSR_ID = #userId#,
<isNotEmpty property="delSttus">
DEL_STTUS = #delSttus#,
</isNotEmpty>
LAST_UPDT_PNTTM = now(),
<isNotEmpty property="siteId">
SITE_ID = #siteId# ,
</isNotEmpty>
ISTARGET = #istarget#
WHERE BANNER_ID = #bannerId#
</update>
<delete id="bannerDAO.deleteBanner" parameterClass="Banner">
<![CDATA[
DELETE FROM COMTNBANNER
WHERE BANNER_ID = #bannerId#
]]>
<!-- <![CDATA[
UPDATE COMTNBANNER
SET DEL_STTUS = #delSttus#,
REFLCT_AT = #reflctAt#
WHERE BANNER_ID = #bannerId#
]]> -->
</delete>
<select id="bannerDAO.selectBannerResult" resultMap="bannerImage">
<![CDATA[
SELECT BANNER_IMAGE_FILE,
LINK_URL
FROM COMTNBANNER
WHERE REFLCT_AT = 'Y'
ORDER BY SORT_ORDR
]]>
</select>
<select id="bannerDAO.selectBannerFile" parameterClass="Banner" resultMap="bannerImageFile">
<![CDATA[
SELECT B.FILE_STRE_COURS AS FILE_STRE_COURS,
B.STRE_FILE_NM AS STRE_FILE_NM
FROM COMTNBANNER A,
LETTNFILEDETAIL B /** COMTNFILEDETAIL B 공통모듈의 수정 **/
WHERE 1 = 1
AND A.BANNER_ID = #bannerId#
AND A.BANNER_IMAGE_FILE = B.ATCH_FILE_ID
]]>
</select>
<select id="bannerDAO.getSortList" resultClass="EgovMap">
<![CDATA[
SELECT
SORT_ORDR as CM_SUB_CODE,
SORT_ORDR as CM_CODE_NAME
FROM COMTNBANNER mb
WHERE DEL_STTUS = 'N'
ORDER BY SORT_ORDR
]]>
</select>
<select id="bannerDAO.getMaxSort" resultClass="int">
SELECT IF(COUNT(*)=0 ,1, COUNT(*)) FROM COMTNBANNER
WHERE DEL_STTUS = 'N'
</select>
<update id="bannerDAO.updateSortUp" parameterClass="sortVO">
<![CDATA[
UPDATE COMTNBANNER SET
SORT_ORDR = SORT_ORDR + 1
WHERE
SORT_ORDR >= #startSort# AND SORT_ORDR <= #endSort#
]]>
</update>
<update id="bannerDAO.resetSort" parameterClass="BannerVO">
UPDATE COMTNBANNER A ,
(SELECT ROW_NUMBER() OVER(ORDER BY SORT_ORDR
<isEqual property="sortOver" compareValue="A">
, LAST_UPDT_PNTTM ASC
</isEqual>
<isEqual property="sortOver" compareValue="D">
, LAST_UPDT_PNTTM DESC
</isEqual>
) AS SORT1 , BANNER_ID FROM COMTNBANNER
WHERE 1=1
<isNotEmpty property="seCd">
AND SE_CD = #seCd#
</isNotEmpty>
ORDER BY SORT1
) B
SET A.SORT_ORDR = B.SORT1
WHERE A.BANNER_ID = B.BANNER_ID
</update>
<update id="bannerDAO.updateSortDown" parameterClass="sortVO">
<![CDATA[
UPDATE COMTNBANNER SET
SORT_ORDR = SORT_ORDR - 1
WHERE
SORT_ORDR >= #startSort# AND SORT_ORDR <= #endSort#
]]>
</update>
</sqlMap>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="egovframework/sqlmap/com/uss/ion/bnr/EgovBanner_SQL_Oracle.xml"/><!-- 배너 추가 -->
</sqlMapConfig>

View File

@ -0,0 +1,206 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>배너 관리</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
$(".img_cont").click(function(e){
clickEvent = true;
});
$(".check").click(function(e){
e.stopPropagation();
});
});
function fn_banner_view(id, pageType){
var vFrom = document.modiForm;
vFrom.selectedId.value = id;
vFrom.pageType.value = "Modify";;
vFrom.action = "<c:url value='/uss/ion/pwm/bannerModify.do' />";
vFrom.submit();
}
function fn_banner_regi(){
var vFrom = document.modiForm;
vFrom.selectedId.value = "1" ;
vFrom.pageType.value = "Insert";;
vFrom.action = "<c:url value='/uss/ion/pwm/bannerModify.do' />";
vFrom.submit();
}
/* 현재 보여지는 알림판 목록 checkbox 선택/해제 버튼 */
var isCheck = true;
function fn_banner_contest_all_select(){
var del = document.listForm.del;
for(i = 0; i < del.length; i++)
{
del[i].checked = isCheck;
}
if(isCheck)
isCheck = false;
else
isCheck = true;
}
/* 체크된 메인배너 목록 삭제 */
function fncBannerListDelete(){
if($("input:checkbox[name='del']").is(":checked")==true){
if(confirm("삭제하시겠습니까?")) {
// var logParam = "01"==$('form[name=listForm] input[name=seCd]').val() ? "mainVisual_D" : "popupZoin_D";
document.listForm.action = "<c:url value='/uss/ion/pwm/bannerListDelete.do'/>?logParam="+logParam;
document.listForm.method = "post" ;
document.listForm.submit();
}
}else{
alert("선택된 알림판이 없습니다.");
return false;
}
}
/* 테마별 색상맞추기 */
$(window).load(function() {
$('table.bbs01_list td.subject a').hover(
function () {
$(this).css("color","#d10000");
},
function () {
$(this).css("color","#333333");
}
);
});
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.submit();
}
</script>
</head>
<body>
<noscript class="noScriptTitle">자바스크립트를 지원하지 않는 브라우저에서는 일부 기능을 사용하실 수 없습니다.</noscript>
<form name="listForm" action="<c:url value='/uss/ion/pwm/bannerList.do'/>" method="get">
<input type="hidden" name="selectedId" />
<input type="hidden" name="pageType" />
<input type="hidden" name="pageIndex" />
<input type="hidden" name="seCd" value="${searchVO.seCd}"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>배너 관리</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>메인관리</p></li>
<li><span class="cur_nav">배너관리</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_top -->
<div class="list_top">
<p>조회건수 : <span><c:out value="${paginationInfo.totalRecordCount}"/></span>건</p>
<div class="list_util">
<select name="searchCondition" id="searchCondition">
<option value="">전체</option>
<option value="1" <c:if test="${searchVO.searchCondition == '1'}">selected</c:if>>제목</option>
<option value="2" <c:if test="${searchVO.searchCondition == '2'}">selected</c:if>>링크</option>
</select>
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" value="<c:out value='${searchVO.searchKeyword}'/>" maxlength="200" placeholder="검색어를 입력하세요">
<button class="btn_search" onclick="linkPage(1); return false;">검색</button>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="list list_gallery">
<c:forEach var="result" items="${bannerList}" varStatus="status">
<article onclick="javascript:fn_banner_view('${result.pozId}'); return false;">
<c:if test="${result.useYn eq 'Y'}">
<p class="gallery_util use_gallery">
사용
</p>
</c:if>
<c:if test="${result.useYn ne 'Y'}">
<p class="gallery_util">
미사용
</p>
</c:if>
</p>
<a href="" class="img_area">
<img onerror="this.src='/pb/img/noImg.png'" src="<c:url value='/uss/ion/pwm/getImage.do'/>?atchFileId=<c:out value="${result.bannerImageFile}"/>" alt="">
</a>
<a href="/" class="text_area">
<p class="list_tit">${result.pozNm}</p>
<div class="list_info">
<span class="list_writer">작성자 : ${result.registerId}</span>
<span>노출순서 : ${result.sort}</span>
<span class="list_date">${result.regdt}</span>
</div>
</a>
</article>
</c:forEach>
<c:if test="${empty bannerList}">
<div class="board1_btn">
<ul style="text-align: center;"><spring:message code="common.nodata.msg" /></ul>
</div>
</c:if>
</div>
<!-- //list -->
<div class="btn_wrap btn_layout02">
<!-- <button type="button" class="btnType01" onclick="fncBannerListDelete(); return false;">삭제</button> -->
<button type="button" class="btnType02" onclick="fn_banner_regi('1'); return false;">등록</button>
</div>
<!-- 페이지 네비게이션 시작 -->
<c:if test="${!empty bannerList}">
<div class="page">
<ul class="inline">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</ul>
</div>
</c:if>
<!-- //페이지 네비게이션 끝 -->
</div>
</div>
</div>
</form>
<form name="modiForm" method="get" action="<c:url value='/uss/ion/pwm/bannerModify.do'/>" >
<input name="selectedId" type="hidden" />
<input name="pageType" type="hidden" />
<input name="seCd" type="hidden" value="${searchVO.seCd}"/>
</form>
<form name="searchForm" method="get" action="<c:url value='/uss/ion/pwm/bannerList.do'/>">
<input name="pageIndex" type="hidden" value="1" />
<input name="searchCondition" type="hidden" />
<input name="searchKeyword" type="hidden" />
<input name="searchConditionSite" type="hidden" />
<input name="seCd" type="hidden" value="${searchVO.seCd}" />
<input name="delSttus" type="hidden" />
</form>
</body>
</html>

View File

@ -13,20 +13,9 @@
</p> </p>
<ul class="lnb_menu"> <ul class="lnb_menu">
<c:set var="activeYn" value="N"/>
<c:forEach var="listDep2" items="${whereAmIList}" varStatus="status1"> <c:forEach var="listDep2" items="${whereAmIList}" varStatus="status1">
<c:if test="${listDep2.depth eq '2'}"> <c:if test="${listDep2.depth eq '2'}">
<li <c:if test="${whereAmIVO_dep2 eq listDep2.menuNo}">class="active"</c:if>>
<li <c:if test="${activeYn eq 'N'}">class="active"</c:if>>
<c:forEach var="findDep2" items="${whereAmIList}" varStatus="status2">
<c:if test="${
listDep2.depth eq '2'
&& activeYn eq 'N'
&& menuManageVO.menuNo eq findDep2.menuNo
}">
<c:set var="activeYn" value="Y"/>
</c:if>
</c:forEach>
<a href="${listDep2.menuType ne 'M' ? listDep2.url : '#none'}" class="lnb_menu_title" > <a href="${listDep2.menuType ne 'M' ? listDep2.url : '#none'}" class="lnb_menu_title" >
<c:out value="${listDep2.menuNm}"/> <c:out value="${listDep2.menuNm}"/>
<c:forEach var="depth2CntList" items="${depth2CntList}" varStatus="status4"> <c:forEach var="depth2CntList" items="${depth2CntList}" varStatus="status4">