refactor: VO <--> DB camelCase 적용

프로그램관리 refactor
main
Jonguk. Lim 2 years ago
parent 529e909cec
commit 73ea40d5e0

@ -2863,7 +2863,7 @@
FROM XIT_USER_INFO A FROM XIT_USER_INFO A
LEFT JOIN XIT_USER_ETC_OPTION B ON A.USER_ID=B.USER_ID LEFT JOIN XIT_USER_ETC_OPTION B ON A.USER_ID=B.USER_ID
WHERE 1=1 WHERE 1=1
AND A.USER_ID = #{user_id } AND A.USER_ID = #{userId }
</select> </select>
@ -2889,7 +2889,7 @@
,AUTHOR_CODE ,AUTHOR_CODE
FROM XIT_USER_SCRTY_SETUP FROM XIT_USER_SCRTY_SETUP
WHERE 1=1 WHERE 1=1
AND SCRTY_SETUP_TRGET_ID = #{scrty_setup_trget_id} AND SCRTY_SETUP_TRGET_ID = #{scrtySetupTrgetId}
</select> </select>
<insert id="addXitUserScrtySetup"> <insert id="addXitUserScrtySetup">
/** addXitUserScrtySetup */ /** addXitUserScrtySetup */
@ -2900,8 +2900,8 @@
<if test="@kr.xit.framework.core.utils.XitCmmnUtil@notEmpty(author_code )">,AUTHOR_CODE </if> <if test="@kr.xit.framework.core.utils.XitCmmnUtil@notEmpty(author_code )">,AUTHOR_CODE </if>
)VALUES( )VALUES(
#{scrty_setup_trget_id} #{scrty_setup_trget_id}
<if test="@kr.xit.framework.core.utils.XitCmmnUtil@notEmpty(mber_ty_code )">,#{mber_ty_code }</if> <if test="@kr.xit.framework.core.utils.XitCmmnUtil@notEmpty(mber_ty_code )">,#{mberTyCode }</if>
<if test="@kr.xit.framework.core.utils.XitCmmnUtil@notEmpty(author_code )">,#{author_code }</if> <if test="@kr.xit.framework.core.utils.XitCmmnUtil@notEmpty(author_code )">,#{authorCode }</if>
) )
</insert> </insert>
<update id="modifyXitUserScrtySetup"> <update id="modifyXitUserScrtySetup">
@ -2909,17 +2909,17 @@
/** 사용자보안설정 수정 */ /** 사용자보안설정 수정 */
UPDATE XIT_USER_SCRTY_SETUP UPDATE XIT_USER_SCRTY_SETUP
SET SET
MBER_TY_CODE = IFNULL(#{mber_ty_code }, MBER_TY_CODE) MBER_TY_CODE = IFNULL(#{mberTyCode }, MBER_TY_CODE)
<if test="@kr.xit.framework.core.utils.XitCmmnUtil@notBlank(author_code )">,AUTHOR_CODE = #{author_code }</if> <if test="@kr.xit.framework.core.utils.XitCmmnUtil@notBlank(author_code )">,AUTHOR_CODE = #{authorCode }</if>
WHERE 1=1 WHERE 1=1
AND SCRTY_SETUP_TRGET_ID = #{scrty_setup_trget_id} AND SCRTY_SETUP_TRGET_ID = #{scrtySetupTrgetId}
</update> </update>
<delete id="removeXitUserScrtySetup"> <delete id="removeXitUserScrtySetup">
/** removeXitUserScrtySetup */ /** removeXitUserScrtySetup */
/** 사용자보안설정 삭제 */ /** 사용자보안설정 삭제 */
DELETE FROM XIT_USER_SCRTY_SETUP DELETE FROM XIT_USER_SCRTY_SETUP
WHERE 1=1 WHERE 1=1
AND SCRTY_SETUP_TRGET_ID = #{scrty_setup_trget_id} AND SCRTY_SETUP_TRGET_ID = #{scrtySetupTrgetId}
</delete> </delete>

@ -28,7 +28,7 @@
Settings 설정 옵션 사이트 참조 Settings 설정 옵션 사이트 참조
-.사이트주소: https://postitforhooney.tistory.com/entry/MyBatisSetting-Mybatis%EC%97%90%EC%84%9C-%ED%95%84%EC%9A%94%ED%95%9C-%EB%B6%80%EB%B6%84%EB%93%A4-setting%EC%9E%90%EB%A3%8C -.사이트주소: https://postitforhooney.tistory.com/entry/MyBatisSetting-Mybatis%EC%97%90%EC%84%9C-%ED%95%84%EC%9A%94%ED%95%9C-%EB%B6%80%EB%B6%84%EB%93%A4-setting%EC%9E%90%EB%A3%8C
--> -->
<setting name="mapUnderscoreToCamelCase" value="false"/> <setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="cacheEnabled" value="true" /> <setting name="cacheEnabled" value="true" />
<setting name="jdbcTypeForNull" value="NULL" /><!-- NULL / VARCHAR / OTHER--> <setting name="jdbcTypeForNull" value="NULL" /><!-- NULL / VARCHAR / OTHER-->
<setting name="callSettersOnNulls" value="true"/> <!-- resultType으로 Map Collection 지정 시 value가 null일 떄 컬럼 누락문제 해결을 위한 설정 --> <setting name="callSettersOnNulls" value="true"/> <!-- resultType으로 Map Collection 지정 시 value가 null일 떄 컬럼 누락문제 해결을 위한 설정 -->

@ -135,7 +135,6 @@ var XitProgramMng = {
url: '<c:url value="/framework/biz/mng/menu/programList.do"/>' url: '<c:url value="/framework/biz/mng/menu/programList.do"/>'
, method: 'get' , method: 'get'
, serializer: (params) => { , serializer: (params) => {
debugger
return fnAddPageInfo(document.frmSearch, params);; return fnAddPageInfo(document.frmSearch, params);;
} }
} }
@ -245,6 +244,7 @@ var XitProgramMng = {
* 페이지 이동 * 페이지 이동
-외부사이트 링크가 필요 시 사용(내부코드는 각 페이지에 맞게 수정, ex>https://www.gov.kr/portal/main ) -외부사이트 링크가 필요 시 사용(내부코드는 각 페이지에 맞게 수정, ex>https://www.gov.kr/portal/main )
======================== */ ======================== */
pageLink: function(flag, url, params){ pageLink: function(flag, url, params){
switch (flag) { switch (flag) {
case "move": //페이지 이동 case "move": //페이지 이동
@ -259,6 +259,8 @@ var XitProgramMng = {
break; break;
} }
}, },
/* ======================== /* ========================
* 페이지 Open * 페이지 Open
-팝업페이지를 Open 한다. -팝업페이지를 Open 한다.
@ -291,10 +293,28 @@ var XitProgramMng = {
-상세 팝업을 OPEN 한다. -상세 팝업을 OPEN 한다.
======================== */ ======================== */
fnClickProgramBtn: function(props){ fnClickProgramBtn: function(props){
<%--
var rowData = props.grid.getRow(props.rowKey); var rowData = props.grid.getRow(props.rowKey);
var params = ""; var params = "";
params += "progrmFileNm=" + rowData.progrmFileNm; params += "progrmFileNm=" + rowData.progrmFileNm;
XitProgramMng.pagePopup('detail', "<c:url value='/framework/biz/mng/menu/ProgramMng_edit.do'/>", params); XitProgramMng.pagePopup('detail', "<c:url value='/framework/biz/mng/menu/ProgramMng_edit.do'/>", params);
--%>
let rowData = props.grid.getRow(props.rowKey);
CmmPopup.open('<c:url value="/framework/biz/mng/menu/program_edit.do"/>',
{
tilesDef: 'popup',
progrmFileNm: rowData.progrmFileNm
},
{
width: 655,
height: 720
},
'프로그램 상세'
)
} }
} }

@ -1,310 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<style type="text/css">
h1 {font-size:12px;}
caption {visibility:hidden; font-size:0; height:0; margin:0; padding:0; line-height:0;}
</style>
<form name="frmSearch" id="frmSearch">
<input type="hidden" id="searchAt" name="searchAt" value="Y">
<input type="hidden" id="searchGubun" name="searchGubun" value="excel">
<input type="hidden" name="cmd">
<input type="hidden" name="progrmFileNm">
<input name="checkedProgrmFileNmForDel" type="hidden" />
<div class="search r2">
<table>
<caption>검색조건</caption>
<colgroup>
<col style="width: 15%;"/>
<col style="width: 20%;"/>
<col style="width: 8%;"/>
<col style="width: ;"/>
<col style="width: 8%;"/>
<col style="width: ;"/>
<col style="width: 7%;"/>
</colgroup>
<tbody>
<th>프로그램 한글명</th>
<td>
<input name="searchKeyword" id="searchKeyword" type="text" size="60" value="<c:out value='${searchVO.searchKeyword}'/>" maxlength="60" title="검색조건">
</td>
<td colspan="6">
<input type="button" id="btnSearch" class="btn_search" title="검색" value="검색" />
</td>
</tbody>
</table>
</div>
<!-- //검색 -->
<!-- 페이지 Open 방식에 따라 버튼 표출 분기(일반페이지 or 팝업페이지) -->
<c:choose>
<c:when test="${param.tilesDef == 'popup'}">
</c:when>
<c:otherwise>
<div class="page_btn">
<span class="fll">
<a href="#" class="btn darkgray" id="btnRegist" title="등록">등록</a>
<a href="#" class="btn red" id="btnDelete" title="삭제">삭제</a>
</span>
</div>
<!-- //버튼 및 페이지정보 -->
</c:otherwise>
</c:choose>
</form>
<!-- 데이터 출력 -->
<div id="grid_t0"></div>
<script type="text/javaScript" language="javascript">
let GRID = null;
$(document).ready(function(){
XitProgramMng.init();
});
/* *******************************
* 프로그램 목록관리 Functions
******************************* */
var XitProgramMng = {
init : function(){
/* ******************************
* Grid start
****************************** */
const gridColumns = [ //Grid 컬럼 정보(명칭,매핑 field, 기타옵션 등)
{
header: '프로그램 파일명',
name: 'progrmFileNm',
minWidth: 200,
sortable: true,
sortingType: 'desc',
align: 'left',
<!-- 페이지 Open 방식에 따라 버튼 표출 분기(일반페이지 or 팝업페이지) -->
<c:if test="${param.tilesDef != 'popup'}">
renderer: {
type: CustomButtonRenderer,
options: {
formatter : function(props){
var rowData = props.grid.getRow(props.rowKey);
var obj = {
formatter : rowData.progrmFileNm
,element : "text"
}
return obj;
}
,eventFunction: XitProgramMng.fnClickProgramBtn //function(){alert("1234")}
,eventType : "click"
}
}
</c:if>
},
{
header: '프로그램 한글명',
name: 'progrmKoreanNm',
minWidth: 200,
sortable: false,
align: 'left'
},
{
header: 'URL',
name: 'url',
minWidth: 300,
sortable: true,
align: 'left'
},
{
header: '프로그램 설명',
name: 'progrmDc',
width: 150,
sortable: false,
align: 'left'
}
];
const gridDatasource = { //DataSource
/* -----------------------
* DataSource API Setting
----------------------- */
//initialRequest: true, // 화면 load시 조회 안함 - default
api: {
readData: {
url: '<c:url value="/framework/biz/mng/menu/program/ProgramMngList.do"/>'
, method: 'get'
, serializer: (params) => {
debugger
return fnAddPageInfo(document.frmSearch, params);;
}
}
}
}
const gridOptions = {
el: 'grid_t0',
rowHeaders: ['rowNum'],
columns: gridColumns,
columnOptions: {
frozenCount: 1 //고정컬럼 갯수
, minWidth: 80 //최소 사이즈
}
};
GRID = TuiGrid.of(gridOptions, gridDatasource, (res) => {
console.log('Grid~~~~~~~~~');
});
/* ******************************
* Grid end
****************************** */
/** ******************************
* Event 정의
* ******************************/
$('#btnSearch').on('click', () => {
GRID.reloadData();
//GRID.refreshLayout();
});
/**
* Elements EventListener Settings
*/
/*//검색 Event 설정
$('#btnSearch').on({
click: function(){
XitProgramMng_list.findData();
}
});
//등록 Event 설정
$("#btnRegist").click(function(){
XitProgramMng_list.pagePopup('input', "<c:url value='/_mng_/menu/program/ProgramMng_input.do'/>");
});
//삭제 Event 설정
$("#btnDelete").click(function(){
XitProgramMng_list.removeData();
});
*/
},
/* ========================
* 데이터 조회
======================== */
findData : function(){
instance.reloadData();
},
/* ========================
* 데이터 등록
======================== */
addData : function(){
},
/* ========================
* 데이터 수정
======================== */
modifyData : function(){
},
/* ========================
* 데이터 삭제
======================== */
removeData : function(){
if(!confirm("삭제 하시겠습니까?"))
return false;
//Parameter Get
var arrKey = [];
instance.getCheckedRows().forEach(function(row){
arrKey.push(row.progrmFileNm);
});
var checkProgrmFileNms = arrKey.join(',');
//Call
document.progrmManageForm.checkedProgrmFileNmForDel.value = checkProgrmFileNms;
var param = $(document.frmSearch).serialize();
$.ajax({
url : "/_mng_/menu/program/ProgramMng_deletes_proc.do",
data : param,
type : "post",
dataType : "json",
success : function(data) {
alert(data.resp.resultMsg);
XitProgramMng.findData();
},
error: function(){
}
});
},
/* ========================
* 페이지 이동
-외부사이트 링크가 필요 시 사용(내부코드는 각 페이지에 맞게 수정, ex>https://www.gov.kr/portal/main )
======================== */
pageLink: function(flag, url, params){
switch (flag) {
case "move": //페이지 이동
document.frmSearch.searchKeyword.value = "";
document.frmSearch.action = url;
document.frmSearch.submit();
break;
case "popup": //팝업 OPEN
XitProgramMng.pagePopup(flag, url, params);
break;
default:
break;
}
},
/* ========================
* 페이지 Open
-팝업페이지를 Open 한다.
======================== */
pagePopup: function(flag, url, params){
var popUrl = url;
popUrl += "?tilesDef=popup";
if(!(params == undefined || params == null)){
popUrl += "&";
popUrl += params;
}
var popTitle = '';
switch (flag) {
case "detail": //상세
popTitle = "프로그램 목록 상세";
popOption = "scrollbars = yes, top=100px, left=100px, height=655px, width=720px;";
break;
case "input": //등록
popTitle = "프로그램 목록 등록";
popOption = "scrollbars = yes, top=100px, left=100px, height=655px, width=720px;";
break;
default:
break;
}
window.open(popUrl, popTitle ,popOption);
},
/* ========================
* 상세 팝업 오픈 버튼 클릭
-상세 팝업을 OPEN 한다.
======================== */
fnClickProgramBtn: function(props){
var rowData = props.grid.getRow(props.rowKey);
var params = "";
params += "progrmFileNm=" + rowData.progrmFileNm;
XitProgramMng.pagePopup('detail', "<c:url value='/_mng_/menu/program/ProgramMng_edit.do'/>", params);
}
}
</script>

@ -1,310 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<style type="text/css">
h1 {font-size:12px;}
caption {visibility:hidden; font-size:0; height:0; margin:0; padding:0; line-height:0;}
</style>
<form name="frmSearch" id="frmSearch">
<input type="hidden" id="searchAt" name="searchAt" value="Y">
<input type="hidden" id="searchGubun" name="searchGubun" value="excel">
<input type="hidden" name="cmd">
<input type="hidden" name="progrmFileNm">
<input name="checkedProgrmFileNmForDel" type="hidden" />
<div class="search r2">
<table>
<caption>검색조건</caption>
<colgroup>
<col style="width: 15%;"/>
<col style="width: 20%;"/>
<col style="width: 8%;"/>
<col style="width: ;"/>
<col style="width: 8%;"/>
<col style="width: ;"/>
<col style="width: 7%;"/>
</colgroup>
<tbody>
<th>프로그램 한글명</th>
<td>
<input name="searchKeyword" id="searchKeyword" type="text" size="60" value="<c:out value='${searchVO.searchKeyword}'/>" maxlength="60" title="검색조건">
</td>
<td colspan="6">
<input type="button" id="btnSearch" class="btn_search" title="검색" value="검색" />
</td>
</tbody>
</table>
</div>
<!-- //검색 -->
<!-- 페이지 Open 방식에 따라 버튼 표출 분기(일반페이지 or 팝업페이지) -->
<c:choose>
<c:when test="${param.tilesDef == 'popup'}">
</c:when>
<c:otherwise>
<div class="page_btn">
<span class="fll">
<a href="#" class="btn darkgray" id="btnRegist" title="등록">등록</a>
<a href="#" class="btn red" id="btnDelete" title="삭제">삭제</a>
</span>
</div>
<!-- //버튼 및 페이지정보 -->
</c:otherwise>
</c:choose>
</form>
<!-- 데이터 출력 -->
<div id="grid_t0"></div>
<script type="text/javaScript" language="javascript">
let GRID = null;
$(document).ready(function(){
XitProgramMng.init();
});
/* *******************************
* 프로그램 목록관리 Functions
******************************* */
var XitProgramMng = {
init : function(){
/* ******************************
* Grid start
****************************** */
const gridColumns = [ //Grid 컬럼 정보(명칭,매핑 field, 기타옵션 등)
{
header: '프로그램 파일명',
name: 'progrmFileNm',
minWidth: 200,
sortable: true,
sortingType: 'desc',
align: 'left',
<!-- 페이지 Open 방식에 따라 버튼 표출 분기(일반페이지 or 팝업페이지) -->
<c:if test="${param.tilesDef != 'popup'}">
renderer: {
type: CustomButtonRenderer,
options: {
formatter : function(props){
var rowData = props.grid.getRow(props.rowKey);
var obj = {
formatter : rowData.progrmFileNm
,element : "text"
}
return obj;
}
,eventFunction: XitProgramMng.fnClickProgramBtn //function(){alert("1234")}
,eventType : "click"
}
}
</c:if>
},
{
header: '프로그램 한글명',
name: 'progrmKoreanNm',
minWidth: 200,
sortable: false,
align: 'left'
},
{
header: 'URL',
name: 'url',
minWidth: 300,
sortable: true,
align: 'left'
},
{
header: '프로그램 설명',
name: 'progrmDc',
width: 150,
sortable: false,
align: 'left'
}
];
const gridDatasource = { //DataSource
/* -----------------------
* DataSource API Setting
----------------------- */
//initialRequest: true, // 화면 load시 조회 안함 - default
api: {
readData: {
url: '<c:url value="/_mng_/menu/program/ProgramMngList.do"/>'
, method: 'get'
, serializer: (params) => {
debugger
return fnAddPageInfo(document.frmSearch, params);;
}
}
}
}
const gridOptions = {
el: 'grid_t0',
rowHeaders: ['rowNum'],
columns: gridColumns,
columnOptions: {
frozenCount: 1 //고정컬럼 갯수
, minWidth: 80 //최소 사이즈
}
};
GRID = TuiGrid.of(gridOptions, gridDatasource, (res) => {
console.log('Grid~~~~~~~~~');
});
/* ******************************
* Grid end
****************************** */
/** ******************************
* Event 정의
* ******************************/
$('#btnSearch').on('click', () => {
GRID.reloadData();
//GRID.refreshLayout();
});
/**
* Elements EventListener Settings
*/
/*//검색 Event 설정
$('#btnSearch').on({
click: function(){
XitProgramMng_list.findData();
}
});
//등록 Event 설정
$("#btnRegist").click(function(){
XitProgramMng_list.pagePopup('input', "<c:url value='/_mng_/menu/program/ProgramMng_input.do'/>");
});
//삭제 Event 설정
$("#btnDelete").click(function(){
XitProgramMng_list.removeData();
});
*/
},
/* ========================
* 데이터 조회
======================== */
findData : function(){
instance.reloadData();
},
/* ========================
* 데이터 등록
======================== */
addData : function(){
},
/* ========================
* 데이터 수정
======================== */
modifyData : function(){
},
/* ========================
* 데이터 삭제
======================== */
removeData : function(){
if(!confirm("삭제 하시겠습니까?"))
return false;
//Parameter Get
var arrKey = [];
instance.getCheckedRows().forEach(function(row){
arrKey.push(row.progrmFileNm);
});
var checkProgrmFileNms = arrKey.join(',');
//Call
document.progrmManageForm.checkedProgrmFileNmForDel.value = checkProgrmFileNms;
var param = $(document.frmSearch).serialize();
$.ajax({
url : "/_mng_/menu/program/ProgramMng_deletes_proc.do",
data : param,
type : "post",
dataType : "json",
success : function(data) {
alert(data.resp.resultMsg);
XitProgramMng.findData();
},
error: function(){
}
});
},
/* ========================
* 페이지 이동
-외부사이트 링크가 필요 시 사용(내부코드는 각 페이지에 맞게 수정, ex>https://www.gov.kr/portal/main )
======================== */
pageLink: function(flag, url, params){
switch (flag) {
case "move": //페이지 이동
document.frmSearch.searchKeyword.value = "";
document.frmSearch.action = url;
document.frmSearch.submit();
break;
case "popup": //팝업 OPEN
XitProgramMng.pagePopup(flag, url, params);
break;
default:
break;
}
},
/* ========================
* 페이지 Open
-팝업페이지를 Open 한다.
======================== */
pagePopup: function(flag, url, params){
var popUrl = url;
popUrl += "?tilesDef=popup";
if(!(params == undefined || params == null)){
popUrl += "&";
popUrl += params;
}
var popTitle = '';
switch (flag) {
case "detail": //상세
popTitle = "프로그램 목록 상세";
popOption = "scrollbars = yes, top=100px, left=100px, height=655px, width=720px;";
break;
case "input": //등록
popTitle = "프로그램 목록 등록";
popOption = "scrollbars = yes, top=100px, left=100px, height=655px, width=720px;";
break;
default:
break;
}
window.open(popUrl, popTitle ,popOption);
},
/* ========================
* 상세 팝업 오픈 버튼 클릭
-상세 팝업을 OPEN 한다.
======================== */
fnClickProgramBtn: function(props){
var rowData = props.grid.getRow(props.rowKey);
var params = "";
params += "progrmFileNm=" + rowData.progrmFileNm;
XitProgramMng.pagePopup('detail', "<c:url value='/_mng_/menu/program/ProgramMng_edit.do'/>", params);
}
}
</script>
Loading…
Cancel
Save