2025-08-20 12:37 초기 셋팅 작업 중

This commit is contained in:
myname 2025-08-20 12:37:38 +09:00
parent 525effee2f
commit 72a30e666d
19 changed files with 5627 additions and 150 deletions

View File

@ -107,7 +107,7 @@ public class EgovLoginLogController {
loginLog.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(loginLog.getSearchSortCnd())){ //최초조회시 최신것 조회List
loginLog.setSearchSortCnd("b.CREAT_DT");
loginLog.setSearchSortCnd("a.CREAT_DT");
loginLog.setSearchSortOrd("desc");
}

View File

@ -97,6 +97,8 @@ public class EgovCntController {
@RequestMapping(value = "/uss/ion/cnt/contentList.do")
public String selectContentList(@ModelAttribute("cntManageVO") CntManageVO cntManageVO, ModelMap model, HttpSession session) throws Exception {
System.out.println("uss/ion/cnt/cntManageList");
if(cntManageVO.getPageUnit() != 10) {
cntManageVO.setPageUnit(cntManageVO.getPageUnit());

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://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="egovframework/sqlmap/let/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Postgresql.xml"/>
</sqlMapConfig>

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://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="egovframework/sqlmap/let/sym/log/clg/EgovLoginLog_SQL_Postgresql.xml"/>
</sqlMapConfig>

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://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="egovframework/sqlmap/let/uss/ion/cnt/CntManage_SQL_Postgresql.xml"/>
</sqlMapConfig>

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://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="egovframework/sqlmap/let/uss/olp/qmc/EgovQustnrManage_SQL_Tibero.xml"/>
</sqlMapConfig>

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://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="egovframework/sqlmap/let/uss/olp/qrm/EgovQustnrRespondManage_SQL_Postgresql.xml"/>
</sqlMapConfig>

View File

@ -8,4 +8,13 @@
<sqlMap resource="egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_postgre.xml"/>
<sqlMap resource="egovframework/sqlmap/ve/cndtn/cndtnTrgtInfoMng_SQL_Postgresql.xml"/>
<sqlMap resource="egovframework/sqlmap/ve/edu/VEEduAplct_SQL_postgresql.xml"/>
<sqlMap resource="egovframework/sqlmap/ve/instr/VEInstr_MIX_SQL_Postgresql.xml"/>
<!-- 강의복합쿼리 -->
<sqlMap resource="egovframework/sqlmap/ve/lctr/VELctr_MIX_SQL_Postgresql.xml"/>
<sqlMap resource="egovframework/sqlmap/ve/instr/VEInstrDetail_SQL_Postgresql.xml"/><!-- 강사상세테이블 -->
<!-- 거주지복합 -->
<sqlMap resource="egovframework/sqlmap/ve/rsdnc/VERsdnc_MIX_SQL_Postgresql.xml"/>
</sqlMapConfig>

View File

@ -6,7 +6,7 @@
<sqlMap resource="egovframework/sqlmap/com/migration/SQL_Ncms.xml"/>
<sqlMap resource="egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Postgresql.xml"/>
<!-- <sqlMap resource="egovframework/sqlmap/config/postgresql/EgovMenuCreat_SQL_Postgresql.xml"/> -->
<sqlMap resource="egovframework/sqlmap/config/postgresql/EgovLoginLog_SQL_Postgresql.xml"/>
<!-- <sqlMap resource="egovframework/sqlmap/config/postgresql/EgovLoginLog_SQL_Postgresql.xml"/> -->
<sqlMap resource="egovframework/sqlmap/config/postgresql/EgovProgrmManage_SQL_Postgresql.xml"/>
<sqlMap resource="egovframework/sqlmap/config/postgresql/EgovUserLog_SQL_Postgresql.xml"/>
<!-- <sqlMap resource="egovframework/sqlmap/config/postgresql/EgovWebLog_SQL_Postgresql.xml"/> -->

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="authorManageDAO">
<sqlMap namespace="AuthorManage">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="AuthorManageVO" type="kcc.let.sec.ram.service.AuthorManageVO"/>
@ -25,10 +25,14 @@
<result property="authorCRole" column="CHLDRN_ROLE" columnIndex="7"/>
</resultMap>
<select id="selectAuthorList" parameterClass="AuthorManageVO" resultMap="author">
<select id="authorManageDAO.selectAuthorList" parameterClass="AuthorManageVO" resultMap="author">
/* authorManageDAO.selectAuthorList */
SELECT
AUTHOR_CODE, AUTHOR_NM, AUTHOR_DC,
AUTHOR_CODE, AUTHOR_NM, AUTHOR_DC,
AUTHOR_CREAT_DE,
/*
TO_CHAR(AUTHOR_CREAT_DE , 'YYYY-MM-DD') AUTHOR_CREAT_DE ,
*/
SORT_NUM
FROM LETTNAUTHORINFO
WHERE 1=1
@ -36,19 +40,22 @@
AND AUTHOR_SET = #authorSet#
</isNotEmpty>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
AUTHOR_NM LIKE '%' || #searchKeyword# || '%'
AUTHOR_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
ORDER BY 1=1
ORDER BY 1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<insert id="insertAuthor" parameterClass="AuthorManage">
<insert id="authorManageDAO.insertAuthor" parameterClass="AuthorManage">
<![CDATA[
INSERT INTO LETTNAUTHORINFO
( AUTHOR_CODE
@ -60,11 +67,11 @@
, #authorNm#
, #authorDc#
, (SELECT CAST(MAX(sort_num)+1 AS VARCHAR(2)) FROM LETTNAUTHORINFO)
, NOW())
, TO_CHAR(SYSDATE, 'YYYY-MM-DD'))
]]>
</insert>
<update id="updateAuthor" parameterClass="AuthorManage">
<update id="authorManageDAO.updateAuthor" parameterClass="AuthorManage">
<![CDATA[
UPDATE LETTNAUTHORINFO
SET AUTHOR_NM=#authorNm#
@ -74,32 +81,34 @@
</update>
<delete id="deleteAuthor" parameterClass="AuthorManage">
<delete id="authorManageDAO.deleteAuthor" parameterClass="AuthorManage">
<![CDATA[
DELETE FROM LETTNAUTHORINFO
WHERE AUTHOR_CODE=#authorCode#
]]>
</delete>
<select id="selectAuthor" resultMap="author">
<![CDATA[
<select id="authorManageDAO.selectAuthor" resultMap="author">
/* authorManageDAO.selectAuthor */
SELECT AUTHOR_CODE, AUTHOR_NM, AUTHOR_DC, AUTHOR_CREAT_DE,
TO_CHAR(AUTHOR_CREAT_DE , 'YYYY-MM-DD') SORT_NUM
AUTHOR_CREAT_DE AS SORT_NUM
/* DATE_FORMAT(AUTHOR_CREAT_DE , '%Y-%m-%d') SORT_NUM */
FROM LETTNAUTHORINFO
WHERE AUTHOR_CODE=#authorCode#
]]>
</select>
<select id="selectAuthorListTotCnt" parameterClass="AuthorManageVO" resultClass="int">
<select id="authorManageDAO.selectAuthorListTotCnt" parameterClass="AuthorManageVO" resultClass="int">
/* authorManageDAO.selectAuthorListTotCnt */
SELECT COUNT(*) totcnt
FROM LETTNAUTHORINFO
WHERE 1=1
<isEqual prepend="AND" property="searchCondition" compareValue="1">
AUTHOR_NM LIKE '%' || #searchKeyword# || '%'
AUTHOR_NM LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
</select>
<select id="selectAuthorAllList" parameterClass="AuthorManageVO" resultMap="author">
<select id="authorManageDAO.selectAuthorAllList" parameterClass="AuthorManageVO" resultMap="author">
/* authorManageDAO.selectAuthorAllList */
SELECT
AUTHOR_CODE, AUTHOR_NM, AUTHOR_DC, AUTHOR_CREAT_DE,
SORT_NUM
@ -107,7 +116,8 @@
ORDER BY SORT_NUM DESC
</select>
<select id="selectAuthorHrcList" parameterClass="AuthorManageVO" resultMap="authorHrc">
<select id="authorManageDAO.selectAuthorHrcList" parameterClass="AuthorManageVO" resultMap="authorHrc">
/* authorManageDAO.selectAuthorHrcList */
SELECT
A.AUTHOR_CODE, A.AUTHOR_NM, A.AUTHOR_DC, A.AUTHOR_CREAT_DE, A.SORT_NUM, B.PARNTS_ROLE, B.CHLDRN_ROLE
FROM LETTNAUTHORINFO A
@ -117,7 +127,7 @@
</select>
<!-- 추가 LETTNAUTHORINFO sort + update -->
<update id="updateAuthorSort" parameterClass="AuthorManage">
<update id="authorManageDAO.updateAuthorSort" parameterClass="AuthorManage">
UPDATE LETTNAUTHORINFO
SET
<isEqual property="wkMode" compareValue="I">
@ -130,7 +140,7 @@
</update>
<!-- 추가 LETTNROLES_HIERARCHY 입력 -->
<insert id="insertLettnrolesHierarchy" parameterClass="AuthorManage">
<insert id="authorManageDAO.insertLettnrolesHierarchy" parameterClass="AuthorManage">
<![CDATA[
INSERT INTO LETTNROLES_HIERARCHY
( PARNTS_ROLE
@ -141,7 +151,7 @@
</insert>
<!-- 추가 LETTNROLES_HIERARCHY PARNTS_ROLE update -->
<update id="updateLettnrolesHierarchyCCrole" parameterClass="AuthorManage">
<update id="authorManageDAO.updateLettnrolesHierarchyCCrole" parameterClass="AuthorManage">
<![CDATA[
UPDATE LETTNROLES_HIERARCHY
SET CHLDRN_ROLE = #parntsRole#
@ -150,7 +160,7 @@
</update>
<!-- 추가 LETTNROLES_HIERARCHY CHLDRN_ROLE update -->
<update id="updateLettnrolesHierarchyPCrole" parameterClass="AuthorManage">
<update id="authorManageDAO.updateLettnrolesHierarchyPCrole" parameterClass="AuthorManage">
<![CDATA[
UPDATE LETTNROLES_HIERARCHY
SET CHLDRN_ROLE = #chldrnRole#
@ -159,7 +169,7 @@
</update>
<!-- 추가 LETTNROLES_HIERARCHY ROLE delete -->
<delete id="deleteLettnrolesHierarchy" parameterClass="AuthorManage">
<delete id="authorManageDAO.deleteLettnrolesHierarchy" parameterClass="AuthorManage">
<![CDATA[
DELETE FROM LETTNROLES_HIERARCHY
WHERE PARNTS_ROLE = #parntsRole#
@ -167,4 +177,4 @@
]]>
</delete>
</sqlMap>
</sqlMap>

View File

@ -0,0 +1,231 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="CmmnDetailCodeManage">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="CmmnDetailCode" type="kcc.com.cmm.service.CmmnDetailCode"/>
<typeAlias alias="CmmnDetailCodeVO" type="kcc.let.sym.ccm.cde.service.CmmnDetailCodeVO"/>
<select id="CmmnDetailCodeManageDAO.selectCmmnDetailCodeList" parameterClass="CmmnDetailCodeVO" resultClass="egovMap">
<![CDATA[
SELECT A.CODE_ID
, A.CODE
, A.CODE_NM
, A.USE_AT
, A.FRST_REGIST_PNTTM
FROM LETTCCMMNDETAILCODE A
, LETTCCMMNCODE B
WHERE B.USE_AT = 'Y'
AND A.CODE_ID = B.CODE_ID
]]>
<isEqual prepend="AND" property="searchCondition" compareValue="">
<![CDATA[
( A.CODE_ID LIKE CONCAT('%', #searchKeyword#, '%') OR A.CODE = #searchKeyword# OR A.CODE_NM LIKE CONCAT('%', #searchKeyword#, '%') )
]]>
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
<![CDATA[A.CODE_ID LIKE CONCAT('%', #searchKeyword#, '%') ]]>
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
<![CDATA[A.CODE LIKE CONCAT('%', #searchKeyword#, '%') ]]>
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="3">
<![CDATA[A.CODE_NM LIKE CONCAT('%', #searchKeyword#, '%')]]>
</isEqual>
ORDER BY 1=1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
<select id="CmmnDetailCodeManageDAO.selectCmmnDetailCodeListTotCnt" parameterClass="CmmnDetailCodeVO" resultClass="int">
<![CDATA[
SELECT COUNT(*) totcnt
FROM LETTCCMMNDETAILCODE A
, LETTCCMMNCODE B
WHERE B.USE_AT = 'Y'
AND A.CODE_ID = B.CODE_ID
]]>
<isEqual prepend="AND" property="searchCondition" compareValue="">
<![CDATA[
( A.CODE_ID LIKE CONCAT('%', #searchKeyword#, '%') OR A.CODE = #searchKeyword# OR A.CODE_NM LIKE CONCAT('%', #searchKeyword#, '%') )
]]>
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
<![CDATA[A.CODE_ID LIKE CONCAT('%', #searchKeyword#, '%') ]]>
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
<![CDATA[A.CODE LIKE CONCAT('%', #searchKeyword#, '%') ]]>
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="3">
<![CDATA[A.CODE_NM LIKE CONCAT('%', #searchKeyword#, '%')]]>
</isEqual>
</select>
<select id="CmmnDetailCodeManageDAO.selectCmmnDetailCodeDetail" parameterClass="CmmnDetailCode" resultClass="CmmnDetailCode">
/* CmmnDetailCodeManageDAO.selectCmmnDetailCodeDetail */
<![CDATA[
SELECT A.CODE_ID codeId
, B.CODE_ID_NM codeIdNm
, A.SORT sort
, A.CODE code
, A.CODE_NM codeNm
, A.CODE_DC codeDc
, A.USE_AT useAt
FROM LETTCCMMNDETAILCODE A
, LETTCCMMNCODE B
WHERE A.CODE_ID = B.CODE_ID
AND A.CODE_ID = #codeId#
AND A.CODE = #code#
]]>
</select>
<insert id="CmmnDetailCodeManageDAO.insertCmmnDetailCode">
<![CDATA[
INSERT
INTO LETTCCMMNDETAILCODE
( CODE_ID
, CODE
, CODE_NM
, CODE_DC
, USE_AT
, FRST_REGIST_PNTTM
, FRST_REGISTER_ID
, LAST_UPDT_PNTTM
, LAST_UPDUSR_ID
)
VALUES
( #codeId#
, #code#
, #codeNm#
, #codeDc#
, #useAt#
, SYSDATE
, #frstRegisterId#
, SYSDATE
, #frstRegisterId#
)
]]>
</insert>
<update id="CmmnDetailCodeManageDAO.updateCmmnDetailCode">
<![CDATA[
UPDATE LETTCCMMNDETAILCODE
SET CODE_NM = #codeNm#
, CODE_DC = #codeDc#
, USE_AT = #useAt#
, LAST_UPDT_PNTTM = SYSDATE
, LAST_UPDUSR_ID = #lastUpdusrId#
WHERE CODE_ID = #codeId#
AND CODE = #code#
]]>
</update>
<!-- <delete id="CmmnDetailCodeManageDAO.deleteCmmnDetailCode">
<![CDATA[
UPDATE LETTCCMMNDETAILCODE
SET USE_AT = 'N'
WHERE CODE_ID = #codeId#
AND CODE = #code#
]]>
</delete> -->
<delete id="CmmnDetailCodeManageDAO.deleteCmmnDetailCode">
<![CDATA[
DELETE FROM LETTCCMMNDETAILCODE
WHERE CODE_ID = #codeId#
AND CODE = #code#
]]>
</delete>
<select id="CmmnDetailCodeManageDAO.selectCmmnCodeAllList" parameterClass="CmmnDetailCode" resultClass="CmmnDetailCode">
<![CDATA[
SELECT A.CODE_ID codeId
, B.CODE_ID_NM codeIdNm
, A.CODE code
, A.CODE_NM codeNm
, A.CODE_DC codeDc
, A.USE_AT useAt
FROM LETTCCMMNDETAILCODE A
, LETTCCMMNCODE B
, lettccmmnclcode C
WHERE B.USE_AT = 'Y'
AND C.CL_CODE = B.CL_CODE
AND A.CODE_ID = B.CODE_ID
AND C.CL_CODE = #clCode#
]]>
</select>
<select id="CmmnDetailCodeManageDAO.selectCmmnDetailCodeListAll" parameterClass="CmmnDetailCodeVO" resultClass="CmmnDetailCodeVO">
<![CDATA[
SELECT * FROM (
SELECT CL_CODE_NM AS text , CL_CODE AS id , '0' AS parent , USE_AT AS useAt , 0 as sort FROM LETTCCMMNCLCODE
UNION ALL
SELECT CODE_ID_NM AS text , CODE_ID AS id , CL_CODE AS parent, USE_AT AS useAt, 0 as sort FROM LETTCCMMNCODE
UNION ALL
/*
SELECT CODE_NM AS text , CONCAT(CODE_ID,'__',CODE) AS id , CODE_ID AS parent , USE_AT AS useAt, SORT as sort FROM LETTCCMMNDETAILCODE
*/
SELECT CODE_NM AS text , CODE_ID||'__'||CODE AS id , CODE_ID AS parent , USE_AT AS useAt, SORT as sort FROM LETTCCMMNDETAILCODE
) A
ORDER BY A.parent, A.id, A.sort+0
]]>
</select>
<update id="CmmnDetailCodeManageDAO.updateCmmnDetailCodePk" parameterClass="CmmnDetailCode">
/* CmmnDetailCodeManageDAO.updateCmmnDetailCodePk */
UPDATE LETTCCMMNDETAILCODE
SET CODE_NM = #codeNm#
<isNotEmpty property="codeDc">
, CODE_DC = #codeDc#
</isNotEmpty>
<isNotEmpty property="useAt">
, USE_AT = #useAt#
</isNotEmpty>
<isNotEmpty property="sort">
, SORT = #sort#
</isNotEmpty>
, LAST_UPDT_PNTTM = SYSDATE
, LAST_UPDUSR_ID = #lastUpdusrId#
, CODE = #code#
WHERE CODE_ID = #codeId#
AND CODE = #tempCodeId#
</update>
<select id="CmmnDetailCodeManageDAO.selectCmmnDetailCodeDetailListWithCode" parameterClass="CmmnDetailCode" resultClass="CmmnDetailCode">
SELECT A.CODE_ID codeId
, B.CODE_ID_NM codeIdNm
, A.CODE code
, A.CODE_NM codeNm
, A.CODE_DC codeDc
, A.USE_AT useAt
FROM LETTCCMMNDETAILCODE A
, LETTCCMMNCODE B
WHERE A.CODE_ID = B.CODE_ID
<isNotEmpty property="codeId">
AND A.CODE_ID = #codeId#
</isNotEmpty>
<isNotEmpty property="code">
AND A.CODE = #code#
</isNotEmpty>
ORDER BY 1
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
</select>
</sqlMap>

View File

@ -60,15 +60,19 @@
<isNotEmpty property="menuNm">
,#menuNm#
</isNotEmpty>
, NOW())
, SYSDATE)
</insert>
<!-- 로그인 로그 상세 조회 -->
<select id="LoginLogDAO.selectLoginLog" parameterClass="loginLog" resultMap="LoginLogVO">
/* LoginLogDAO.selectLoginLog */
<![CDATA[
SELECT
a.LOG_ID
, TO_CHAR(a.CREAT_DT, 'YYYY-MM-DD HH24:MI') CREAT_DT
/*
, DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %H:%i') CREAT_DT
*/
, TO_CHAR(a.CREAT_DT, 'YYYY-MM-DD HH24:MI') CREAT_DT
, a.CONECT_MTHD
, a.CONECT_IP
, a.CONECT_ID
@ -84,10 +88,11 @@
<!-- 로그인 로그 목록 조회 -->
<select id="LoginLogDAO.selectLoginLogInf" parameterClass="loginLog" resultMap="LoginLogVO">
/* LoginLogDAO.selectLoginLogInf */
<![CDATA[
SELECT
a.LOG_ID
, TO_CHAR(a.CREAT_DT, 'YYYY-MM-DD HH24:MI:SS') CREAT_DT
, DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %T') CREAT_DT
, a.CONECT_MTHD
, a.CONECT_IP
, a.CONECT_ID
@ -103,7 +108,7 @@
<![CDATA[ a.CONECT_MTHD LIKE CONCAT ('%', #searchWrd#,'%') ]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchBgnDe">
<![CDATA[ TO_CHAR(a.CREAT_DT, 'YYYYMMDD') BETWEEN #searchBgnDe# AND #searchEndDe# ]]>
<![CDATA[ DATE_FORMAT(a.CREAT_DT, '%Y%m%d') BETWEEN #searchBgnDe# AND #searchEndDe# ]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="userAt">
USER_AT = #userAt#
@ -114,7 +119,7 @@
<!-- 로그인 로그 총건수 -->
<select id="LoginLogDAO.selectLoginLogInfCnt" parameterClass="loginLog" resultClass="java.lang.Integer">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectLoginLogInfCnt */
<![CDATA[
SELECT COUNT(a.LOG_ID) as cnt
FROM
@ -128,7 +133,7 @@
<![CDATA[ a.CONECT_MTHD LIKE CONCAT ('%', #searchWrd#,'%') ]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchBgnDe">
<![CDATA[ TO_CHAR(a.CREAT_DT, 'YYYYMMDD') BETWEEN #searchBgnDe# AND #searchEndDe# ]]>
<![CDATA[ DATE_FORMAT(a.CREAT_DT, '%Y%m%d') BETWEEN #searchBgnDe# AND #searchEndDe# ]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="userAt">
USER_AT = #userAt#
@ -137,7 +142,7 @@
<!-- 오늘 날짜 로그인 로그 상세 조회 -->
<select id="LoginLogDAO.selectLoginUserLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectLoginUserLog */
<![CDATA[
SELECT
a.LOG_ID
@ -148,7 +153,7 @@
FROM
LETTNLOGINLOG a
WHERE
TO_CHAR(CREAT_DT, 'YYYYMMDD') = #creatDt#
TO_CHAR(CREAT_DT, 'YYYY-MM-DD') = #creatDt#
AND CONECT_IP = #loginIp#
AND CONECT_ID = '' /* 관리자 제외 */
LIMIT 1
@ -157,11 +162,11 @@
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectMainAmdinLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectMainAmdinLog */
SELECT
a.LOG_ID logId ,
b.USER_NM loginNm,
TO_CHAR(a.CREAT_DT, 'YYYY-MM-DD HH24:MI:SS' ) creatDt,
DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %T' ) creatDt,
a.CONECT_IP loginIp,
a.PROGRM_FILE_NM AS progrmFileNm,
a.MENU_NM AS menuNm,
@ -177,7 +182,7 @@
<!-- 관리자 대쉬보드 접속 TOTCNT -->
<select id="LoginLogDAO.selectMainAmdinLogTotCnt" parameterClass="loginLog" resultClass="int">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectMainAmdinLogTotCnt */
SELECT
COUNT(a.LOG_ID)
FROM
@ -190,7 +195,7 @@
<!-- 관리자 로그 등록 -->
<insert id="LoginLogDAO.logInsertAdminLoginLog" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.logInsertAdminLoginLog */
/* LoginLogDAO.logInsertAdminLoginLog */
INSERT INTO LETTNLOGINLOG
( LOG_ID
@ -225,18 +230,87 @@
,(
SELECT B.MENU_NM FROM LETTNPROGRMLIST A INNER JOIN LETTNMENUINFO B
WHERE A.PROGRM_FILE_NM = B.PROGRM_FILE_NM AND A.URL = #url# LIMIT 1 )
, now())
, SYSDATE)
</insert>
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectAmdinLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectAmdinLog */
SELECT
COUNT(1) OVER() AS totCnt
, a.MENU_NM AS menuNm
, a.APPRO_NM AS approNm
, a.METHOD_NM AS methodNm
, b.URL AS url
, b.creat_dt AS creatDt
, b.CONECT_IP AS loginIp
, b.CONECT_ID AS conectId
, c.USER_ID AS loginId
, c.USER_NM AS userNm
FROM LETTNADMINMETHOD a
, LETTNADMINLOG b
, COMVNUSERMASTER c
WHERE 1=1
AND a.use_yn='Y'
AND a.method_cd='A'
AND a.METHOD_NM =b.PROGRM_FILE_NM
AND b.CONECT_ID =c.ESNTL_ID
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( a.MENU_NM LIKE '%'||#searchKeyword#||'%'
OR
b.URL LIKE '%'||#searchKeyword#||'%'
OR
c.USER_ID LIKE '%'||#searchKeyword#||'%'
)
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
a.MENU_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
b.URL LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="3">
c.USER_ID LIKE '%'||#searchKeyword#||'%'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' ) >= #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND #searchEndDt# >= TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' )
</isNotEmpty>
ORDER BY 1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectAmdinLog_bak" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectAmdinLog_bak */
SELECT
COUNT(1) OVER() AS totCnt ,
a.ADMINLOG_ID logId ,
b.USER_NM loginNm,
TO_CHAR(a.CREAT_DT, 'YYYY-MM-DD HH24:MI:SS' ) creatDt,
/*
DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %T' ) creatDt,
*/
TO_CHAR(a.CREAT_DT, 'YYYY-MM-DD HH24:MI' ) creatDt,
a.CONECT_IP loginIp,
a.PROGRM_FILE_NM AS progrmFileNm,
a.MENU_NM AS menuNm,
@ -261,25 +335,31 @@
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND TO_CHAR(a.CREAT_DT, 'YYYY.MM.DD' ) >= #searchStartDt#
AND DATE_FORMAT(a.CREAT_DT, '%Y.%m.%d' ) >= #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND #searchEndDt# >= TO_CHAR(a.CREAT_DT, 'YYYY.MM.DD' )
AND #searchEndDt# >= DATE_FORMAT(a.CREAT_DT, '%Y.%m.%d' )
</isNotEmpty>
/*
ORDER BY 1=1
*/
ORDER BY 1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 관리자 대쉬보드 접속 TOTCNT -->
<select id="LoginLogDAO.selectAmdinLogTotCnt" parameterClass="loginLog" resultClass="int">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectAmdinLogTotCnt */
SELECT
COUNT(a.ADMINLOG_ID)
FROM
@ -289,68 +369,153 @@
AND a.CONECT_ID != ''
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( a.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%') OR a.URL LIKE CONCAT('%' , #searchKeyword#, '%') )
( a.MENU_NM LIKE '%'||#searchKeyword#||'%' OR a.URL LIKE '%'||#searchKeyword#||'%' OR c.USER_ID LIKE '%'||#searchKeyword#||'%' )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
a.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%')
a.MENU_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
a.URL LIKE CONCAT('%' , #searchKeyword#, '%')
a.URL LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="3">
c.USER_ID LIKE '%'||#searchKeyword#||'%'
</isEqual>
</isNotEmpty>
</select>
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectNWebLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectNWebLog */
SELECT
COUNT(1) OVER() AS totCnt
, a.MENU_NM AS menuNm
, a.APPRO_NM AS approNm
, a.METHOD_NM AS methodNm
, b.URL AS url
, b.creat_dt AS creatDt
, b.CONECT_IP AS loginIp
, b.CONECT_ID AS conectId
, c.USER_ID AS loginId
, c.USER_NM AS userNm
FROM LETTNADMINMETHOD a
, lettnloginlog b
LEFT OUTER JOIN COMVNUSERMASTER c
ON(
1=1
AND b.CONECT_ID =c.ESNTL_ID
)
WHERE 1=1
AND a.use_yn='Y'
AND a.method_cd='U'
AND a.METHOD_NM =b.PROGRM_FILE_NM
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( a.MENU_NM LIKE '%'||#searchKeyword#||'%' OR b.URL LIKE '%'||#searchKeyword#||'%' OR c.USER_ID LIKE '%'||#searchKeyword#||'%' )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
a.MENU_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
b.URL LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="3">
c.USER_ID LIKE '%'||#searchKeyword#||'%'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' ) >= #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND #searchEndDt# >= TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' )
</isNotEmpty>
ORDER BY 1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 관리자 로그설정 메소드 리스트 -->
<select id="LoginLogDAO.selectLogMethodList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectLogMethodList */
SELECT
COUNT(A.ADMOT_ID) OVER() AS totCnt,
A.ADMOT_ID AS admotId,
A.METHOD_NM AS methodNm,
/*
DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d') AS creatDt,
*/
TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD') AS creatDt,
A.MENU_NM AS menuNm,
A.APPRO_NM AS approNm,
A.PARAM AS param,
A.CREAT_DT AS tempSortNum,
A.PRIVACY AS privacy,
A.USE_YN AS useYn,
A.SORT_NUM AS sortNum,
A.method_cd as dateType
FROM LETTNADMINMETHOD A
WHERE 1=1
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( A.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%') OR A.METHOD_NM LIKE CONCAT('%' , #searchKeyword#, '%') )
( A.MENU_NM LIKE '%'||#searchKeyword#||'%' OR A.METHOD_NM LIKE '%'||#searchKeyword#||'%' )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
A.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%')
A.MENU_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
A.METHOD_NM LIKE CONCAT('%' , #searchKeyword#, '%')
A.METHOD_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
</isNotEmpty>
/*
ORDER BY 1=1
*/
ORDER BY 1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 관리자 로그설정 메소드 VO -->
<select id="LoginLogDAO.selectLogMethod" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectLogMethod */
SELECT
COUNT(A.ADMOT_ID) OVER() AS totCnt,
A.ADMOT_ID AS admotId,
A.METHOD_NM AS methodNm,
TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD') AS creatDt,
/*
DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d') AS creatDt,
*/
TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD') AS creatDt,
A.MENU_NM AS menuNm,
A.APPRO_NM AS approNm,
A.PARAM AS param,
A.CREAT_DT AS tempSortNum,
A.PRIVACY AS privacy,
A.method_cd AS dateType
FROM LETTNADMINMETHOD A
A.USE_YN AS useYn,
A.SORT_NUM AS sortNum,
A.method_cd as dateType
FROM LETTNADMINMETHOD A
WHERE 1=1
<isNotEmpty property="admotId">
AND ADMOT_ID = #admotId#
@ -363,20 +528,54 @@
</isNotEmpty>
</select>
<!-- 관리자 로그설정 메소드 VO -->
<select id="LoginLogDAO.selectMethodEgov" parameterClass="loginLog" resultClass="egovMap">
SELECT
COUNT(A.ADMOT_ID) OVER() AS totCnt,
A.ADMOT_ID AS admotId,
A.METHOD_NM AS methodNm,
TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD') AS creatDt,
A.MENU_NM AS menuNm,
A.APPRO_NM AS approNm,
A.PARAM AS param,
A.CREAT_DT AS tempSortNum,
A.PRIVACY AS privacy,
A.USE_YN AS useYn,
A.SORT_NUM AS sortNum,
A.method_cd as dateType
FROM LETTNADMINMETHOD A
WHERE 1=1
<isNotEmpty property="admotId">
AND A.ADMOT_ID = #admotId#
</isNotEmpty>
<isNotEmpty property="methodNm">
AND A.METHOD_NM = #methodNm#
</isNotEmpty>
<isNotEmpty property="param">
AND A.PARAM = #param#
</isNotEmpty>
</select>
<!-- 관리자 로그설정 메소드 수정 -->
<update id="LoginLogDAO.updateLogMethod" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.updateLogMethod */
UPDATE LETTNADMINMETHOD
SET METHOD_NM = #methodNm#
, PARAM = #param#
, MENU_NM = #menuNm#
, APPRO_NM = #approNm#
, PRIVACY = #privacy#
, USE_YN = #useYn#
<isNotEmpty property="sortNum">
, sort_num = CAST(#sortNum# as int)
</isNotEmpty>
WHERE ADMOT_ID = #admotId#
</update>
<insert id="LoginLogDAO.insertLogMethod" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.insertLogMethod */
INSERT INTO LETTNADMINMETHOD
(
ADMOT_ID,
@ -384,7 +583,9 @@
PARAM,
MENU_NM,
APPRO_NM,
PRIVACY
PRIVACY,
use_yn,
sort_num
)
VALUES
(
@ -393,7 +594,9 @@
#param#,
#menuNm#,
#approNm#,
#privacy#
#privacy#,
#useYn#,
#sortNum#
)
</insert>
@ -404,7 +607,11 @@
<!-- 이전 관리자 로그인 로그 상세 조회 -->
<select id="LoginLogDAO.selectBeforeAmdinLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectBeforeAmdinLog */
/*
SELECT DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d %H:%i' ) creatDt FROM LETTNADMINLOG A
*/
SELECT TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD HH24:MI' ) creatDt FROM LETTNADMINLOG A
WHERE A.CONECT_ID = #conectId#
AND A.PROGRM_FILE_NM = 'selectActionSecurityLogin'
@ -447,10 +654,10 @@
</insert>
<!-- 사용자 접속 로그 등록(매뉴에 등록된 페이지만 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep1" parameterClass="loginLog">
<update id="LoginLogDAO.logInsertWebLoginLogNewStep1_bak" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep1 */
/* LoginLogDAO.logInsertWebLoginLogNewStep1_bak */
INSERT INTO LETTNLOGINLOG
( LOG_ID
, CONECT_ID
@ -472,7 +679,7 @@
, A.MENU_NO
, A.MENU_NM
, #url#
, NOW()
, SYSDATE
FROM LETTNMENUINFO A
INNER JOIN LETTNPROGRMLIST B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM
WHERE B.URL IS NOT NULL
@ -480,6 +687,37 @@
AND B.URL = #url#
</update>
<!-- 사용자 접속 로그 등록(매뉴에 등록된 페이지만 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep1" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep1 */
INSERT INTO LETTNLOGINLOG
( LOG_ID
, CONECT_ID
, CONECT_IP
, USER_AT
, DEVICE_TYPE /**인테넛,모바일 */
, PROGRM_FILE_NM
, MENU_NM
, URL
, CREAT_DT )
SELECT
#logId#
, #loginId#
, #loginIp#
, #userAt# /**A:관리자, U:홈페이지 */
, #deviceType#
, method_nm
, menu_nm
, #url#
, SYSDATE
FROM LETTNADMINMETHOD
WHERE METHOD_NM = #methodNm#
LIMIT 1
</update>
<!-- 사용자 접속 로그 등록(매뉴에 없는 페이지 등록용 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep2" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
@ -506,45 +744,17 @@
, '999999999'
, 'MENU_NM'
, #url#
, NOW()
, SYSDATE
FROM DUAL
</update>
<!-- 사용자 접속 로그 등록(매뉴에 등록된 페이지만 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep1_bak" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep1_bak */
INSERT INTO LETTNLOGINLOG_BAK
( LOG_ID
, CONECT_ID
, CONECT_IP
, USER_AT
, DEVICE_TYPE /**인테넛,모바일 */
, PROGRM_FILE_NM
, MENU_NM
, URL
, CREAT_DT )
SELECT
#logId#
, #loginId#
, #loginIp#
, #userAt# /**A:관리자, U:홈페이지 */
, #deviceType#
, method_nm
, menu_nm
, #url#
, NOW()
FROM LETTNADMINMETHOD
WHERE METHOD_NM = #methodNm#
LIMIT 1
</update>
<!-- 사용자 접속 로그 등록(매뉴에 없는 페이지 등록용 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep2_bak" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep2 */
/* LoginLogDAO.LoginLogDAO.logInsertWebLoginLogNewStep2_bak */
INSERT INTO LETTNLOGINLOG_BAK
( LOG_ID
, CONECT_ID
@ -566,7 +776,7 @@
, '999999999'
, 'MENU_NM'
, #url#
, NOW()
, SYSDATE
</update>
<!-- 시스템 관리자 로그 등록(LETTNADMINMETHOD 테이블에 등록하기) -->
@ -584,24 +794,24 @@
)
SELECT
'ADMOTID_' || (COALESCE(MAX(CAST(REPLACE(admot_id, 'ADMOTID_', '') AS BIGINT)), 0) + 1)
NVL(MAX(TO_NUMBER(REPLACE(admot_id, 'ADMOTID_', ''))) + 1, 1)
, #methodNm#
, 'N'
, NOW()
, SYSDATE
, #methodNm#
, #url#
, 'N'
, 'U'
FROM LETTNADMINMETHOD
</update>
<!-- 사용자 메뉴별 접속 리스트 -->
<select id="LoginLogDAO.selectWebLogList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectWebLogList */
SELECT COUNT(A.MENU_NM) OVER() AS totCnt,
COUNT(B.CREAT_DT) menuCnt,
A.MENU_NM AS menuNm,
TO_CHAR(B.CREAT_DT , 'YYYY-MM-DD') AS creatDt,
DATE_FORMAT(B.CREAT_DT , "%Y-%m-%d") AS creatDt,
A.PROGRM_FILE_NM as progrmFileNm,
A.MENU_NO as logId /** 임시정렬번호 */
FROM (
@ -621,7 +831,7 @@
WHERE 1=1
<isNotEmpty property="searchKeyword">
</isNotEmpty>
GROUP BY menuNm, creatDt
GROUP BY menuNm /** , creatDt */
ORDER BY 1=1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
@ -630,30 +840,90 @@
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
</select>
<!-- 사용자 메뉴별 접속 로그 리스트 -->
<select id="LoginLogDAO.selectWebMenuLogList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectWebMenuLogList */
SELECT a.MENU_NM AS menuNm,
a.APPRO_NM AS approNm,
a.METHOD_NM AS methodNm,
a.SORT_NUM AS sortNum,
count(*) AS totCnt
FROM LETTNADMINMETHOD a
LEFT OUTER JOIN LETTNLOGINLOG b
ON (a.METHOD_NM =b.PROGRM_FILE_NM)
WHERE a.use_yn ='Y'
AND a.METHOD_CD ='U'
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( a.MENU_NM LIKE '%'||#searchKeyword#||'%'
OR
a.METHOD_NM LIKE '%'||#searchKeyword#||'%'
)
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
a.MENU_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
a.METHOD_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' ) >= #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND #searchEndDt# >= TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' )
</isNotEmpty>
GROUP BY a.MENU_NM,
a.APPRO_NM,
a.METHOD_NM,
a.SORT_NUM
ORDER BY A.SORT_NUM
</select>
<!-- 사용자 메뉴별 접속 로그 리스트 -->
<select id="LoginLogDAO.selectWebMenuLogList_bak" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectWebMenuLogList_bak */
<isEqual property="dateType" compareValue="D"> /** 일별 */
SELECT C.creatDt creatDt ,
C.menuNm menuNm,
C.progrmFileNm progrmFileNm,
C.menuNo menuNo,
COALESCE(D.menuCnt , 0) menuCnt
NVL(D.menuCnt , 0) menuCnt
FROM
(
SELECT A.creatDt , B.menuNm , B.progrmFileNm, B.menuNo FROM
(
SELECT TO_CHAR(d, 'YYYY-MM-DD') AS creatDt
FROM generate_series(
CAST(#searchBgnDe# AS DATE),
CAST(#searchEndDe# AS DATE),
'1 day'::interval
) d
/*
SELECT DATE_FORMAT(A.Dates, '%Y-%m-%d') AS creatDt
*/
SELECT TO_CHAR(A.Dates, 'YYYY-MM-DD') AS creatDt
FROM (
/*
SELECT ADDDATE(CURDATE(), INTERVAL (A.A + (10 * B.A) + (100 * C.A) + (1000 * D.A) ) DAY) AS DATES
FROM (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS A
CROSS JOIN (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS B
CROSS JOIN (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS C
CROSS JOIN (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS D
*/
SELECT SYSDATE - (A.A1 + (10 * B.A2) + (100 * C.A3) + (1000 * D.A4) ) AS DATES
FROM (SELECT 0 AS A1 FROM DUAL UNION ALL SELECT 1 FROM DUAL UNION ALL SELECT 2 FROM DUAL UNION ALL SELECT 3 FROM DUAL UNION ALL SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL UNION ALL SELECT 6 FROM DUAL UNION ALL SELECT 7 FROM DUAL UNION ALL SELECT 8 FROM DUAL UNION ALL SELECT 9 FROM DUAL) A
,(SELECT 0 AS A2 FROM DUAL UNION ALL SELECT 1 FROM DUAL UNION ALL SELECT 2 FROM DUAL UNION ALL SELECT 3 FROM DUAL UNION ALL SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL UNION ALL SELECT 6 FROM DUAL UNION ALL SELECT 7 FROM DUAL UNION ALL SELECT 8 FROM DUAL UNION ALL SELECT 9 FROM DUAL) B
,(SELECT 0 AS A3 FROM DUAL UNION ALL SELECT 1 FROM DUAL UNION ALL SELECT 2 FROM DUAL UNION ALL SELECT 3 FROM DUAL UNION ALL SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL UNION ALL SELECT 6 FROM DUAL UNION ALL SELECT 7 FROM DUAL UNION ALL SELECT 8 FROM DUAL UNION ALL SELECT 9 FROM DUAL) C
,(SELECT 0 AS A4 FROM DUAL UNION ALL SELECT 1 FROM DUAL UNION ALL SELECT 2 FROM DUAL UNION ALL SELECT 3 FROM DUAL UNION ALL SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL UNION ALL SELECT 6 FROM DUAL UNION ALL SELECT 7 FROM DUAL UNION ALL SELECT 8 FROM DUAL UNION ALL SELECT 9 FROM DUAL) D
) A
WHERE 1=1
AND ( DATES BETWEEN #searchBgnDe# AND #searchEndDe# )
) A
CROSS JOIN
,
( SELECT A.MENU_NM AS menuNm,
A.PROGRM_FILE_NM AS progrmFileNm ,
A.MENU_NO AS menuNo
@ -669,14 +939,28 @@
) C
LEFT JOIN
(
SELECT COUNT(B.CREAT_DT) menuCnt, A.MENU_NM AS menuNm, TO_CHAR(B.CREAT_DT , 'YYYY-MM-DD') AS creatDt, A.PROGRM_FILE_NM as progrmFileNm, A.MENU_NO as logId /** 임시정렬번호 */ FROM ( SELECT A.MENU_NM , A.PROGRM_FILE_NM , A.MENU_NO FROM LETTNMENUINFO A INNER JOIN LETTNPROGRMLIST B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM INNER JOIN LETTNMENUCREATDTLS C ON C.MENU_NO = A.MENU_NO
WHERE B.URL IS NOT NULL
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' ) A INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM
WHERE 1=1
GROUP BY menuNm , creatDt
) D ON C.creatDt = D.creatDt
AND C.progrmFileNm = D.progrmFileNm
/*
SELECT COUNT(B.CREAT_DT) menuCnt, A.MENU_NM AS menuNm, DATE_FORMAT(B.CREAT_DT , '%Y-%m-%d') AS creatDt, A.PROGRM_FILE_NM as progrmFileNm, A.MENU_NO as logId ** 임시정렬번호 ** FROM ( SELECT A.MENU_NM , A.PROGRM_FILE_NM , A.MENU_NO FROM LETTNMENUINFO A INNER JOIN LETTNPROGRMLIST B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM INNER JOIN LETTNMENUCREATDTLS C ON C.MENU_NO = A.MENU_NO
*/
SELECT COUNT(B.CREAT_DT) menuCnt, A.MENU_NM AS menuNm, TO_CHAR(B.CREAT_DT , 'YYYY-MM-DD') AS creatDt, A.PROGRM_FILE_NM as progrmFileNm, A.MENU_NO as logId /** 임시정렬번호 */
FROM ( SELECT A.MENU_NM , A.PROGRM_FILE_NM , A.MENU_NO
FROM LETTNMENUINFO A
INNER JOIN LETTNPROGRMLIST B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM
INNER JOIN LETTNMENUCREATDTLS C ON C.MENU_NO = A.MENU_NO
WHERE B.URL IS NOT NULL
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' ) A
INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM
WHERE 1=1
GROUP BY A.MENU_NM
, TO_CHAR(B.CREAT_DT , 'YYYY-MM-DD')
, A.PROGRM_FILE_NM
, A.MENU_NO
) D ON (
C.creatDt = D.creatDt
AND C.progrmFileNm = D.progrmFileNm
)
WHERE 1=1
</isEqual>
<isEqual property="dateType" compareValue="M"> /** 월별 */
@ -685,17 +969,27 @@
C.menuNm menuNm,
C.progrmFileNm progrmFileNm,
C.menuNo menuNo ,
COALESCE(D.menuCnt , 0) menuCnt
IFNULL(D.menuCnt , 0) menuCnt
FROM
(
SELECT A.creatDt , B.menuNm , B.progrmFileNm, B.menuNo FROM
(
SELECT TO_CHAR(m, 'YYYY-MM') creatDt
FROM generate_series(
date_trunc('month', CAST(#searchBgnDe# AS DATE)),
date_trunc('month', CAST(#searchEndDe# AS DATE)),
'1 month'::interval
) m
SELECT DATE_FORMAT(m1, '%Y-%m') creatDt FROM
(
SELECT
( #searchBgnDe# - INTERVAL DAYOFMONTH(#searchBgnDe#)-1 DAY)
+INTERVAL m MONTH as m1
FROM
(
select @rownums := @rownums +1 as m from
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) T1,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) T2,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) T3,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) T4,
(select @rownums :=-1) T0
) d1
) d2
WHERE m1 <= #searchEndDe#
) A
CROSS JOIN
( SELECT A.MENU_NM AS menuNm,
@ -713,7 +1007,7 @@
) C
LEFT JOIN
(
SELECT COUNT(B.CREAT_DT) menuCnt, A.MENU_NM AS menuNm, TO_CHAR(B.CREAT_DT , 'YYYY-MM') AS creatDt, A.PROGRM_FILE_NM as progrmFileNm, A.MENU_NO as logId /** 임시정렬번호 */ FROM ( SELECT A.MENU_NM , A.PROGRM_FILE_NM , A.MENU_NO FROM LETTNMENUINFO A INNER JOIN LETTNPROGRMLIST B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM INNER JOIN LETTNMENUCREATDTLS C ON C.MENU_NO = A.MENU_NO
SELECT COUNT(B.CREAT_DT) menuCnt, A.MENU_NM AS menuNm, DATE_FORMAT(B.CREAT_DT , '%Y-%m') AS creatDt, A.PROGRM_FILE_NM as progrmFileNm, A.MENU_NO as logId /** 임시정렬번호 */ FROM ( SELECT A.MENU_NM , A.PROGRM_FILE_NM , A.MENU_NO FROM LETTNMENUINFO A INNER JOIN LETTNPROGRMLIST B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM INNER JOIN LETTNMENUCREATDTLS C ON C.MENU_NO = A.MENU_NO
WHERE B.URL IS NOT NULL
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' ) A INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM
@ -731,17 +1025,27 @@
C.menuNm menuNm,
C.progrmFileNm progrmFileNm,
C.menuNo menuNo ,
COALESCE(D.menuCnt , 0) menuCnt
IFNULL(D.menuCnt , 0) menuCnt
FROM
(
SELECT A.creatDt , B.menuNm , B.progrmFileNm, B.menuNo FROM
(
SELECT TO_CHAR(y, 'YYYY') creatDt
FROM generate_series(
date_trunc('year', CAST(#searchBgnDe# AS DATE)),
date_trunc('year', CAST(#searchEndDe# AS DATE)),
'1 year'::interval
) y
SELECT DATE_FORMAT(m1, '%Y') creatDt FROM
(
SELECT
( #searchBgnDe# - INTERVAL DAYOFYEAR(#searchBgnDe#)-1 DAY)
+INTERVAL m YEAR as m1
FROM
(
select @rownums:=@rownums+1 as m from
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) T1,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) T2,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) T3,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) T4,
(select @rownums:=-1) T0
) d1
) d2
WHERE m1 <= #searchEndDe#
) A
CROSS JOIN
( SELECT A.MENU_NM AS menuNm,
@ -759,7 +1063,7 @@
) C
LEFT JOIN
(
SELECT COUNT(B.CREAT_DT) menuCnt, A.MENU_NM AS menuNm, TO_CHAR(B.CREAT_DT , 'YYYY') AS creatDt, A.PROGRM_FILE_NM as progrmFileNm, A.MENU_NO as logId /** 임시정렬번호 */ FROM ( SELECT A.MENU_NM , A.PROGRM_FILE_NM , A.MENU_NO FROM LETTNMENUINFO A INNER JOIN LETTNPROGRMLIST B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM INNER JOIN LETTNMENUCREATDTLS C ON C.MENU_NO = A.MENU_NO
SELECT COUNT(B.CREAT_DT) menuCnt, A.MENU_NM AS menuNm, DATE_FORMAT(B.CREAT_DT , '%Y') AS creatDt, A.PROGRM_FILE_NM as progrmFileNm, A.MENU_NO as logId /** 임시정렬번호 */ FROM ( SELECT A.MENU_NM , A.PROGRM_FILE_NM , A.MENU_NO FROM LETTNMENUINFO A INNER JOIN LETTNPROGRMLIST B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM INNER JOIN LETTNMENUCREATDTLS C ON C.MENU_NO = A.MENU_NO
WHERE B.URL IS NOT NULL
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' ) A INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM
@ -773,22 +1077,25 @@
<isNotEmpty prepend="AND" property="searchKeyword">
C.menuNm LIKE CONCAT ('%', #searchKeyword#,'%')
</isNotEmpty>
ORDER BY menuNo , creatDt DESC
ORDER BY C.menuNo , C.creatDt DESC
</select>
<!-- 사용자 메뉴별 접속 로그 리스트 (접속일자(조회))-->
<select id="LoginLogDAO.selectDateLogList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
SELECT TO_CHAR(d, 'YYYY-MM-DD') AS creatDt
FROM generate_series(
'2020-09-09'::date,
current_date,
'1 day'::interval
) d
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectDateLogList */
SELECT DATE_FORMAT(A.Dates, '%Y-%m-%d') AS creatDt
FROM (
SELECT CURDATE() - INTERVAL (A.A + (10 * B.A) + (100 * C.A) + (1000 * D.A) ) DAY AS DATES
FROM (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS A
CROSS JOIN (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS B
CROSS JOIN (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS C
CROSS JOIN (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS D
) A
WHERE A.Dates BETWEEN '2020-09-09' AND DATE_FORMAT(SYSDATE , '%Y-%m-%d')
</select>
<!-- 사용자 메뉴별 접속 로그 리스트(사용자 매뉴(전체)) -->
<select id="LoginLogDAO.selectUserMenuList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectUserMenuList */
SELECT A.MENU_NM AS menuNm,
A.PROGRM_FILE_NM AS progrmFileNm ,
A.MENU_NO AS menuNo
@ -807,14 +1114,15 @@
<!-- footer 하단 접속자수 조회 -->
<select id="LoginLogDAO.selectLogCnt" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectLogCnt */
SELECT A.todayLogCnt , B.totalLogCnt from
( SELECT COUNT(*) todayLogCnt , 'TEMP' AS TEMP FROM LETTNLOGINLOG
WHERE TO_CHAR(CREAT_DT, 'YYYY-MM-DD') = TO_CHAR(now() , 'YYYY-MM-DD') ) A
WHERE TO_CHAR(CREAT_DT, 'YYYY-MM-DD') = TO_CHAR(SYSDATE , 'YYYY-MM-DD') ) A
INNER JOIN
(SELECT COUNT(LOG_ID) AS totalLogCnt ,'TEMP' AS TEMP
FROM LETTNLOGINLOG
WHERE 1=1 )
B ON A.TEMP = B.TEMP
</select>
</sqlMap>
</sqlMap>

View File

@ -0,0 +1,286 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<!--
수정일 수정자 수정내용
=========== ======== =================================================
2011.10.06 이기하 보안 취약점 점검사항 반영 $->#변경
-->
<sqlMap namespace="UnityLink">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="comDefaultVO" type="kcc.com.cmm.ComDefaultVO"/>
<typeAlias alias="cntManageVO" type="kcc.let.uss.ion.cnt.service.CntManageVO" />
<!-- 컨텐츠 리스트 -->
<select id="cntManageDAO.selectCntList" parameterClass="cntManageVO" resultClass="cntManageVO">
/* cntManageDAO.selectCntList */
SELECT A.CNT_ID AS cntId,
A.CNTDT_ID AS cntDtId,
A.CNT_NAME AS cntName,
B.EMPLYR_ID AS registerId,
A.MENU_NO AS menuNo ,
/*
IF(C.MENU_NM='root' , '', C.MENU_NM) AS menuNm,
*/
CASE WHEN C.MENU_NM='root' THEN '' ELSE C.MENU_NM END AS menuNm,
TO_CHAR(A.REGIST_PNTTM , 'YYYY-MM-DD HH24') registPnttm
FROM CNT_MANAGE A LEFT JOIN LETTNEMPLYRINFO B
ON A.REGISTER_ID = B.ESNTL_ID
LEFT OUTER JOIN LETTNMENUINFO C
ON A.MENU_NO = C.MENU_NO
WHERE 1=1
<isNotEmpty property="searchKeyword">
AND CNT_NAME LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isNotEmpty>
<isNotEmpty property="searchConditionSite">
AND A.SITE_ID = #searchConditionSite#
</isNotEmpty>
AND A.USE_AT = 'Y'
ORDER BY 1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 컨텐츠 리스트 카운트 -->
<select id="cntManageDAO.selectCntListTotCnt" parameterClass="cntManageVO" resultClass="int">
/* cntManageDAO.selectCntListTotCnt */
SELECT COUNT( A.CNT_ID ) totcnt
FROM CNT_MANAGE A
WHERE 1=1
<isNotEmpty property="searchKeyword">
AND CNT_NAME LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isNotEmpty>
<isNotEmpty property="searchConditionSite">
AND A.SITE_ID = #searchConditionSite#
</isNotEmpty>
AND A.USE_AT = 'Y'
</select>
<!-- 컨텐츠 insert -->
<insert id="cntManageDAO.insertCntManage" parameterClass="cntManageVO">
INSERT INTO CNT_MANAGE
(
CNT_ID,
CNTDT_ID,
CNT_NAME,
CNT_FILE_FOLDER,
CNT_CN,
REGISTER_ID,
REGIST_PNTTM,
USE_AT,
MENU_NO
)VALUES(
#cntId#,
#cntDtId#,
#cntName#,
#cntFileFolder#,
#cntCn#,
#registerId#,
NOW(),
'Y',
(SELECT MENU_NO FROM CNT_MANAGE A
WHERE A.CNT_ID = #cntId#
LIMIT 1
)
)
</insert>
<!-- 컨텐츠 상세정보 -->
<select id="cntManageDAO.selectCntDtDetail" parameterClass="cntManageVO" resultClass="cntManageVO">
/* cntManageDAO.selectCntDtDetail */
SELECT A.CNT_ID cntId,
A.CNTDT_ID cntDtId,
A.CNT_CN cntCn ,
A.CNT_NAME cntName,
B.EMPLYR_ID registerId,
TO_CHAR(A.REGIST_PNTTM , 'YYYY-MM-DD HH24') registPnttm
FROM CNT_MANAGE A LEFT JOIN LETTNEMPLYRINFO B
ON A.REGISTER_ID = B.ESNTL_ID
WHERE 1=1
AND CNTDT_ID = #cntDtId#
/* AND A.USE_AT = 'Y' */
LIMIT 1
</select>
<!-- 수정시 이전 컨텐츠 정보 모두 사용안함'N' 으로 -->
<update id="cntManageDAO.updateCntManageBeforeN" parameterClass="cntManageVO">
<![CDATA[
UPDATE CNT_MANAGE
SET USE_AT = 'N'
WHERE CNT_ID = #cntId#
]]>
</update>
<!-- 모든 컨텐츠 정보 삭제 -->
<delete id="cntManageDAO.deleteCntManage" parameterClass="cntManageVO">
<![CDATA[
DELETE FROM CNT_MANAGE
WHERE CNT_ID = #cntId#
]]>
</delete>
<!-- 모든 cnt_id 에 등록된 cntDt_id 가져오기(파일 삭제를 위해) -->
<select id="cntManageDAO.selectCntDtDetailAll" parameterClass="cntManageVO" resultClass="cntManageVO">
/* cntManageDAO.selectCntDtDetailAll */
SELECT
A.CNTDT_ID cntDtId,
A.CNT_NAME cntName,
B.EMPLYR_ID registerId,
TO_CHAR(A.REGIST_PNTTM, 'YYYY-MM-DD HH24:MI:SS') AS registPnttm
FROM CNT_MANAGE A INNER JOIN LETTNEMPLYRINFO B
ON A.REGISTER_ID = B.ESNTL_ID
WHERE 1=1
AND CNT_ID = #cntId#
<isNotEmpty property="useAt">
AND USE_AT = #useAt#
</isNotEmpty>
ORDER BY CNTDT_ID DESC
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<select id="cntManageDAO.selectCntDetailListTotCnt" parameterClass="cntManageVO" resultClass="int">
/* cntManageDAO.selectCntDetailListTotCnt */
SELECT
count(A.CNTDT_ID) totCnt
FROM CNT_MANAGE A
WHERE 1=1
AND CNT_ID = #cntId#
<isNotEmpty property="useAt">
AND USE_AT = #useAt#
</isNotEmpty>
</select>
<!-- 개별 컨텐츠 정보 삭제 -->
<delete id="cntManageDAO.deleteCntDtManage" parameterClass="cntManageVO">
<![CDATA[
DELETE FROM CNT_MANAGE
WHERE CNTDT_ID = #cntDtId#
]]>
</delete>
<!-- 컨텐츠 상세정보 -->
<select id="cntManageDAO.selectContentVo" parameterClass="cntManageVO" resultClass="cntManageVO">
/* cntManageDAO.selectContentVo */
SELECT CNTDT_ID cntDtId,
CNT_ID cntId,
CNT_NAME cntName,
(SELECT MENU_NM||'>'||C.MENU_NM FROM LETTNMENUINFO
WHERE MENU_NO = C.UPPER_MENU_NO ) menu_fullNm,
'' as menuCours
/*getMenuCours(C.MENU_NO) as menuCours*/
FROM LETTNPROGRMLIST A INNER JOIN CNT_MANAGE B
ON A.PROGRM_HTML_FILE_ID = B.CNT_ID
INNER JOIN LETTNMENUINFO C
ON A.PROGRM_FILE_NM = C.PROGRM_FILE_NM
WHERE A.PROGRM_FILE_NM = #progrmFileNm#
AND C.PROGRM_FILE_NM = #progrmFileNm#
AND B.USE_AT = 'Y'
LIMIT 1
</select>
<!-- 컨텐츠 상세정보 -->
<select id="cntManageDAO.selectContentByCntDtId" parameterClass="cntManageVO" resultClass="cntManageVO">
/* cntManageDAO.selectContentByCntDtId */
SELECT A.CNT_ID as cntId,
A.CNTDT_ID as cntDtId,
B.PROGRM_FILE_NM as progrmFileNm,
'' AS menuCours
/*GETMENUCOURS(C.MENU_NO) menuCours*/
FROM CNT_MANAGE A INNER JOIN LETTNPROGRMLIST B
ON A.CNT_ID = B.PROGRM_HTML_FILE_ID
INNER JOIN LETTNMENUINFO C ON B.PROGRM_FILE_NM = C.PROGRM_FILE_NM
WHERE CNTDT_ID = #cntDtId#
LIMIT 1
</select>
<!-- 컨텐츠 상세정보 -->
<select id="cntManageDAO.selectContentByProFn" parameterClass="cntManageVO" resultClass="cntManageVO">
/* cntManageDAO.selectContentByProFn */
SELECT A.CNT_ID as cntId,
A.CNTDT_ID as cntDtId
FROM CNT_MANAGE A
WHERE CNT_NAME = #progrmFileNm#
AND USE_AT = 'Y'
LIMIT 1
</select>
<!-- 메뉴관리에서 등록시 메뉴번호 입력 -->
<update id="cntManageDAO.updateMenuContent" parameterClass="cntManageVO">
<![CDATA[
UPDATE CNT_MANAGE
SET MENU_NO = #menuNo#
WHERE CNT_ID = #cntId#
]]>
</update>
<!-- 메뉴관리에서 등록시 메뉴번호 입력 -->
<update id="cntManageDAO.deleteMenuNo" parameterClass="cntManageVO">
<![CDATA[
UPDATE CNT_MANAGE
SET MENU_NO = null
WHERE MENU_NO = #menuNo#
]]>
</update>
<!-- 컨텐츠 상세정보 -->
<select id="cntManageDAO.selectContentUseVo" parameterClass="cntManageVO" resultClass="cntManageVO">
/* cntManageDAO.selectContentUseVo */
SELECT A.CNT_ID cntId,
A.CNTDT_ID cntDtId,
A.CNT_NAME cntName,
B.EMPLYR_ID registerId,
DATE_FORMAT(A.REGIST_PNTTM , '%Y-%m-%d %T') registPnttm
FROM CNT_MANAGE A LEFT JOIN LETTNEMPLYRINFO B
ON A.REGISTER_ID = B.ESNTL_ID
WHERE 1=1
AND CNT_ID = #cntId#
AND A.USE_AT = 'Y'
LIMIT 1
</select>
<!-- 찾교 청소년 메일 본문 수정 -->
<update id="cntManageDAO.updateCntMail" parameterClass="cntManageVO">
/* cntManageDAO.updateCntMail */
MERGE INTO CNT_MANAGE
USING DUAL
ON(
CNT_ID = #cntId#
AND CNTDT_ID = #cntDtId#
)
WHEN NOT MATCHED THEN
INSERT
(
CNT_ID
, CNTDT_ID
, CNT_CN
, REGISTER_ID
, REGIST_PNTTM
)
VALUES(
#cntId#,
#cntDtId#,
#cntCn#,
#registerId#,
SYSDATE
)
WHEN MATCHED THEN
UPDATE
SET CNT_CN = #cntCn#
</update>
</sqlMap>

View File

@ -0,0 +1,291 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="QustnrManage">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="comDefaultVO" type="kcc.com.cmm.ComDefaultVO"/>
<typeAlias alias="QustnrManageVO" type="kcc.let.uss.olp.qmc.service.QustnrManageVO"/>
<resultMap id="QustnrManage" class="kcc.let.uss.olp.qmc.service.QustnrManageVO">
<result property="qestnrId" column="QESTNR_ID" columnIndex="1"/>
<result property="qestnrSj" column="QUSTNR_SJ" columnIndex="2"/>
<result property="qestnrPurps" column="QUSTNR_PURPS" columnIndex="3"/>
<result property="qestnrWritngGuidanceCn" column="QUSTNR_WRITNG_GUIDANCE_CN" columnIndex="4"/>
<result property="qestnrBeginDe" column="QUSTNR_BGNDE" columnIndex="5"/>
<result property="qestnrEndDe" column="QUSTNR_ENDDE" columnIndex="6"/>
<result property="qestnrTrget" column="QUSTNR_TRGET" columnIndex="7"/>
<result property="qestnrTmplatId" column="QUSTNR_TMPLAT_ID" columnIndex="8"/>
<result property="qestnrTmplatTy" column="QUSTNR_TMPLAT_TY" columnIndex="9"/>
<result property="frstRegisterPnttm" column="FRST_REGIST_PNTTM" columnIndex="10"/>
<result property="frstRegisterId" column="FRST_REGISTER_ID" columnIndex="11"/>
<result property="lastUpdusrPnttm" column="LAST_UPDT_PNTTM" columnIndex="12"/>
<result property="lastUpdusrId" column="LAST_UPDUSR_ID" columnIndex="13"/>
<result property="qustnrQesitmCnt" column="QUSTNRQESITM_CNT" />
<result property="rrspnsResultCnt" column="RRSPNSRESULT_CNT" />
<result property="sttus" column="STTUS" />
<result property="siteId" column="SITE_ID" />
<result property="qestnrViewTrget" column="QUSTNR_VIEW_TRGET" />
<result property="beforeAndAfter" column="BEFORE_AND_AFTER" />
<result property="atchFileId" column="ATCH_FILE_ID" />
</resultMap>
<!-- 설문정보::목록조회_게시물정보 -->
<select id="QustnrManage.selectQustnrManageDetailModel" resultMap="QustnrManage">
/* QustnrManage.selectQustnrManageDetailModel */
<![CDATA[
SELECT
A.QESTNR_ID,
A.QUSTNR_SJ,
A.QUSTNR_PURPS,
A.QUSTNR_WRITNG_GUIDANCE_CN,
TO_DATE(A.QUSTNR_BGNDE,'YYYY-MM-DD') QUSTNR_BGNDE,
TO_DATE(A.QUSTNR_ENDDE,'YYYY-MM-DD') QUSTNR_ENDDE,
A.QUSTNR_TRGET,
A.QUSTNR_TMPLAT_ID,
(SELECT QUSTNR_TMPLAT_TY FROM LETTNQUSTNRTMPLAT WHERE QUSTNR_TMPLAT_ID = A.QUSTNR_TMPLAT_ID) QUSTNR_TMPLAT_TY,
TO_CHAR(A.FRST_REGIST_PNTTM,'YYYY-MM-DD HH24') FRST_REGIST_PNTTM,
(SELECT USER_NM FROM LETTNEMPLYRINFO
WHERE ESNTL_ID = A.FRST_REGISTER_ID) FRST_REGISTER_ID,
TO_CHAR(A.LAST_UPDT_PNTTM,'YYYY-MM-DD HH24') LAST_UPDT_PNTTM,
A.LAST_UPDUSR_ID,
( SELECT COUNT(*) FROM LETTNQUSTNRQESITM WHERE QESTNR_ID = A.QESTNR_ID ) QUSTNRQESITM_CNT ,
( SELECT COUNT(*) FROM LETTNQUSTNRRSPNSRESULT WHERE QESTNR_ID = A.QESTNR_ID ) RRSPNSRESULT_CNT,
( SELECT COUNT(*) FROM LETTNQUSTNRRESPONDINFO WHERE QESTNR_ID = A.QESTNR_ID ) rrspnsResultCnt,
CASE
WHEN A.STTUS = '1' THEN
CASE
WHEN TO_DATE(A.QUSTNR_ENDDE,'YYYYMMDD') < TO_CHAR(SYSDATE, 'YYYYMMDD') THEN '2'
ELSE '1'
END
ELSE A.STTUS
END AS STTUS,
A.SITE_ID,
A.SITE_ID_CD AS siteIdCd,
A.QUSTNR_VIEW_TRGET,
A.BEFORE_AND_AFTER,
A.ATCH_FILE_ID
FROM LETTNQESTNRINFO A
WHERE 1=1
AND QESTNR_ID = #qestnrId#
]]>
</select>
<!-- 설문정보::목록조회_게시물정보 -->
<select id="QustnrManage.selectQustnrManage" parameterClass="comDefaultVO" resultClass="egovMap" >
/* QustnrManage.selectQustnrManage */
<![CDATA[
select
count(a.qestnr_id) over() as totcnt
, a.qestnr_id qestnrId
, a.qustnr_sj qestnrSj
, a.qustnr_purps qestnrPurps
, a.qustnr_writng_guidance_cn qestnrwritngguidancecn
, a.qustnr_bgnde qestnrBeginDe
, a.qustnr_endde qestnrEndDe
, a.qustnr_trget qestnrtrget
, a.qustnr_tmplat_id qestnrtmplatid
, a.frst_regist_pnttm frstregisterpnttm
, a.frst_register_id
, (select user_nm from comvnusermaster where esntl_id = a.frst_register_id ORDER BY USER_NM DESC LIMIT 1) frst_register_nm
, a.last_updt_pnttm
, a.last_updusr_id
, a.site_id
, a.before_and_after
, a.atch_file_id
, ( select count(*) from lettnqustnrqesitm where qestnr_id = a.qestnr_id ) qustnrQesitmCnt
, ( select count(*) from lettnqustnrrespondinfo where qestnr_id = a.qestnr_id ) rrspnsResultCnt
, case
when a.qustnr_endde < TO_CHAR(SYSDATE, 'YYYYMMDD') then '2' /* */
else a.sttus
end as sttus
, (select qustnr_tmplat_path_nm from lettnqustnrtmplat where qustnr_tmplat_id = a.qustnr_tmplat_id ) template_url
from
lettnqestnrinfo a
where 1=1
]]>
<isNotEmpty property="searchKeyword">
<isNotEqual property="searchKeyword" compareValue="">
<isEqual property="searchCondition" compareValue="">
AND ( QUSTNR_SJ LIKE '%'||#searchKeyword#||'%'
OR FRST_REGISTER_ID IN (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_NM LIKE '%'||#searchKeyword#||'%'
)
)
</isEqual>
<isEqual property="searchCondition" compareValue="QUSTNR_SJ">
AND QUSTNR_SJ LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual property="searchCondition" compareValue="FRST_REGISTER_ID">
AND FRST_REGISTER_ID IN (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_NM LIKE '%'||#searchKeyword#||'%' )
</isEqual>
</isNotEqual>
</isNotEmpty>
ORDER BY 1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
<isNotEqual property="pageIndex" compareValue="0">
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</isNotEqual>
</select>
<!-- 설문정보::목록조회_게시물 총갯수 -->
<select id="QustnrManage.selectQustnrManageCnt" parameterClass="comDefaultVO" resultClass="int">
/* QustnrManage.selectQustnrManageCnt */
SELECT
COUNT(*) totcnt
FROM LETTNQESTNRINFO
WHERE 1=1
<isNotEmpty property="searchKeyword">
<isNotEqual property="searchKeyword" compareValue="">
<isEqual property="searchCondition" compareValue="">
AND ( QUSTNR_SJ LIKE '%'||#searchKeyword#||'%'
OR FRST_REGISTER_ID IN (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_NM LIKE '%'||#searchKeyword#||'%' )
)
</isEqual>
<isEqual property="searchCondition" compareValue="QUSTNR_SJ">
AND QUSTNR_SJ LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual property="searchCondition" compareValue="FRST_REGISTER_ID">
AND FRST_REGISTER_ID IN (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_NM LIKE '%'||#searchKeyword#||'%' )
</isEqual>
</isNotEqual>
</isNotEmpty>
<isNotEmpty property="searchConditionSite">
AND SITE_ID = #searchConditionSite#
</isNotEmpty>
</select>
<!-- 설문정보::설문템플릿정보 -->
<select id="QustnrManage.selectQustnrTmplatManage" parameterClass="QustnrManageVO" resultClass="egovMap">
SELECT
QUSTNR_TMPLAT_ID qestnrTmplatId,
QUSTNR_TMPLAT_TY qestnrTmplatTy
FROM LETTNQUSTNRTMPLAT
</select>
<!-- 설문응답자 삭제 -->
<delete id="QustnrManage.deleteQustnrRespondManage">
DELETE FROM LETTNQUSTNRRESPONDINFO WHERE QESTNR_ID = #qestnrId#
</delete>
<!-- 설문조사(설문결과) 삭제 -->
<delete id="QustnrManage.deleteQustnrRespondInfo">
DELETE FROM LETTNQUSTNRRSPNSRESULT WHERE QESTNR_ID = #qestnrId#
</delete>
<!-- 설문항목 삭제 -->
<delete id="QustnrManage.deleteQustnrItemManage">
DELETE FROM LETTNQUSTNRIEM WHERE QESTNR_ID = #qestnrId#
</delete>
<!-- 설문문항 삭제 -->
<delete id="QustnrManage.deleteQustnrQestnManage">
DELETE FROM LETTNQUSTNRQESITM WHERE QESTNR_ID = #qestnrId#
</delete>
<!-- 설문정보::삭제 -->
<delete id="QustnrManage.deleteQustnrManage">
<![CDATA[
DELETE FROM LETTNQESTNRINFO
WHERE QESTNR_ID = #qestnrId#
]]>
</delete>
<!-- 설문정보::수정 -->
<update id="QustnrManage.updateQustnrManage">
UPDATE LETTNQESTNRINFO
SET
QUSTNR_SJ=#qestnrSj#,
QUSTNR_PURPS=#qestnrPurps#,
QUSTNR_TMPLAT_ID=#qestnrTmplatId#,
QUSTNR_WRITNG_GUIDANCE_CN=#qestnrWritngGuidanceCn#,
QUSTNR_BGNDE=REPLACE(#qestnrBeginDe#,'-',''),
QUSTNR_TRGET=#qestnrTrget#,
QUSTNR_VIEW_TRGET=#qestnrViewTrget#,
QUSTNR_ENDDE=REPLACE(#qestnrEndDe#,'-',''),
LAST_UPDT_PNTTM = SYSDATE,
SITE_ID = #siteId#,
LAST_UPDUSR_ID = #lastUpdusrId#,
STTUS = #sttus#,
BEFORE_AND_AFTER = #beforeAndAfter#,
ATCH_FILE_ID = #atchFileId#
WHERE QESTNR_ID = #qestnrId#
</update>
<!-- 설문정보::상세보기 -->
<select id="QustnrManage.selectQustnrManageDetail" parameterClass="QustnrManageVO" resultClass="egovMap">
/* QustnrManage.selectQustnrManageDetail */
<![CDATA[
SELECT
A.QESTNR_ID,
A.QUSTNR_SJ qestnrSj,
A.QUSTNR_PURPS qestnrPurps,
A.QUSTNR_WRITNG_GUIDANCE_CN qestnrWritngGuidanceCn,
TO_DATE(A.QUSTNR_BGNDE,'YYYY-MM-DD') QESTNR_BEGIN_DE,
TO_DATE(A.QUSTNR_ENDDE,'YYYY-MM-DD') QESTNR_END_DE,
TO_CHAR(A.FRST_REGIST_PNTTM,'YYYY-MM-DD HH24') frstRegisterPnttm,
A.FRST_REGISTER_ID,
TO_CHAR(A.LAST_UPDT_PNTTM,'YYYY-MM-DD HH24') LAST_UPDT_PNTTM,
A.LAST_UPDUSR_ID,
A.ATCH_FILE_ID atchFileId,
A.QUSTNR_TRGET qestnrTrget,
A.QUSTNR_VIEW_TRGET qestnrViewTrget,
A.QUSTNR_TMPLAT_ID qestnrTmplatId,
( SELECT COUNT(*) FROM LETTNQUSTNRQESITM WHERE QESTNR_ID = A.QESTNR_ID ) qustnrQesitmCnt ,
( SELECT COUNT(*) FROM LETTNQUSTNRRESPONDINFO WHERE QESTNR_ID = A.QESTNR_ID ) rrspnsResultCnt,
CASE
WHEN A.QUSTNR_ENDDE < TO_CHAR(SYSDATE, 'YYYY.MM.DD') THEN '2' /* */
ELSE A.STTUS
END AS STTUS,
(SELECT QUSTNR_TMPLAT_PATH_NM FROM LETTNQUSTNRTMPLAT WHERE QUSTNR_TMPLAT_ID = A.QUSTNR_TMPLAT_ID ) TEMPLATE_URL
FROM LETTNQESTNRINFO A
WHERE 1=1
AND QESTNR_ID = #qestnrId#
]]>
</select>
<!-- 설문정보::입력 -->
<insert id="QustnrManage.insertQustnrManage">
INSERT INTO LETTNQESTNRINFO (
QESTNR_ID,
QUSTNR_SJ,
QUSTNR_PURPS,
QUSTNR_WRITNG_GUIDANCE_CN,
QUSTNR_BGNDE,
QUSTNR_ENDDE,
QUSTNR_TRGET,
QUSTNR_VIEW_TRGET,
QUSTNR_TMPLAT_ID,
SITE_ID,
FRST_REGIST_PNTTM,
FRST_REGISTER_ID,
LAST_UPDT_PNTTM,
LAST_UPDUSR_ID,
ATCH_FILE_ID
)VALUES(
#qestnrId#,
#qestnrSj#,
#qestnrPurps#,
#qestnrWritngGuidanceCn#,
REPLACE(#qestnrBeginDe#,'-',''),
REPLACE(#qestnrEndDe#,'-',''),
#qestnrTrget#,
#qestnrViewTrget#,
#qestnrTmplatId#,
#siteId#,
SYSDATE,
#frstRegisterId#,
SYSDATE,
#lastUpdusrId#,
#atchFileId#
)
</insert>
</sqlMap>

View File

@ -0,0 +1,189 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="QustnrRespondManage">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="comDefaultVO" type="kcc.com.cmm.ComDefaultVO"/>
<typeAlias alias="QustnrRespondManageVO" type="kcc.let.uss.olp.qrm.service.QustnrRespondManageVO"/>
<!-- 응답자정보(설문조사)::삭제 -->
<delete id="QustnrRespondManage.deleteQustnrRespondManage">
<![CDATA[
DELETE FROM LETTNQUSTNRRESPONDINFO
WHERE 1=1
AND QUSTNR_RESPOND_ID = #qestnrRespondId#
]]>
</delete>
<!-- 응답자정보(설문조사)::수정 -->
<update id="QustnrRespondManage.updateQustnrRespondManage">
/*QustnrRespondManage.updateQustnrRespondManage*/
UPDATE LETTNQUSTNRRESPONDINFO
SET
LAST_UPDT_PNTTM = SYSDATE
, LAST_UPDUSR_ID = #lastUpdusrId#
<isNotNull property="qestnrParticipant">
, QESTNR_RESPONDENT_COUNT = #qestnrParticipant#
</isNotNull>
<isNotNull property="qestnrRespondent">
, QESTNR_PARTICIPANT_COUNT = #qestnrRespondent#
</isNotNull>
WHERE 1=1
AND QUSTNR_RESPOND_ID = #qestnrRespondId#
</update>
<!-- 응답자정보(설문조사)::상세보기 -->
<select id="QustnrRespondManage.selectQustnrRespondManageDetail" parameterClass="QustnrRespondManageVO" resultClass="egovMap">
SELECT
( SELECT QUSTNR_SJ FROM LETTNQESTNRINFO WHERE 1=1 AND QESTNR_ID = A.QESTNR_ID ) QESTNR_SJ
, A.QESTNR_ID
, A.QUSTNR_RESPOND_ID qestnrRespondId
, A.FRST_REGIST_PNTTM frstRegisterPnttm
, A.FRST_REGISTER_ID
, A.LAST_UPDT_PNTTM
, A.LAST_UPDUSR_ID
FROM
LETTNQUSTNRRESPONDINFO A
WHERE 1=1
AND QUSTNR_RESPOND_ID = #qestnrRespondId#
</select>
<!-- 응답자정보(설문조사)::목록조회_게시물정보 -->
<select id="QustnrRespondManage.selectQustnrRespondManage" parameterClass="comDefaultVO" resultClass="egovMap">
<![CDATA[
SELECT
( SELECT QUSTNR_SJ FROM LETTNQESTNRINFO WHERE 1=1 AND QESTNR_ID = A.QESTNR_ID ) QESTNR_SJ
, A.QESTNR_ID
, A.QUSTNR_RESPOND_ID qestnrRespondId
, A.FRST_REGIST_PNTTM frstRegisterPnttm
, A.FRST_REGISTER_ID
, (SELECT USER_NM FROM COMVNUSERMASTER WHERE ESNTL_ID = A.FRST_REGISTER_ID ORDER BY USER_NM DESC LIMIT 1) FRST_REGISTER_NM
, A.LAST_UPDT_PNTTM
, A.LAST_UPDUSR_ID
FROM
LETTNQUSTNRRESPONDINFO A
WHERE 1=1
]]>
<isNotEmpty property="searchKeyword">
<isNotEqual property="searchKeyword" compareValue="">
<isEqual property="searchCondition" compareValue="">
AND ( RESPOND_NM LIKE CONCAT(CONCAT('%', #searchKeyword#), '%') )
</isEqual>
<isEqual property="searchCondition" compareValue="RESPOND_NM">
AND RESPOND_NM LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isEqual>
</isNotEqual>
</isNotEmpty>
<![CDATA[
ORDER BY A.FRST_REGIST_PNTTM DESC
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
]]>
</select>
<!-- 응답자정보(설문조사)::목록조회_게시물 총갯수 -->
<select id="QustnrRespondManage.selectQustnrRespondManageCnt" parameterClass="comDefaultVO" resultClass="int">
SELECT
COUNT(*) totcnt
FROM LETTNQUSTNRRESPONDINFO
WHERE 1=1
<isNotEmpty property="searchKeyword">
<isNotEqual property="searchKeyword" compareValue="">
<isEqual property="searchCondition" compareValue="">
AND ( RESPOND_NM LIKE CONCAT(CONCAT('%', #searchKeyword#), '%') )
</isEqual>
<isEqual property="searchCondition" compareValue="RESPOND_NM">
AND RESPOND_NM LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isEqual>
</isNotEqual>
</isNotEmpty>
</select>
<!-- 응답자정보(설문조사)::입력 -->
<insert id="QustnrRespondManage.insertQustnrRespondManage">
/* QustnrRespondManage.insertQustnrRespondManage */
<![CDATA[
INSERT INTO LETTNQUSTNRRESPONDINFO (
QUSTNR_TMPLAT_ID
, QESTNR_ID
, QUSTNR_RESPOND_ID
, EDU_APLCT_ORD
, EDU_CHASI_ORD
, QESTNR_RESPONDENT_COUNT
, QESTNR_PARTICIPANT_COUNT
, FRST_REGIST_PNTTM
, FRST_REGISTER_ID
, LAST_UPDT_PNTTM
, LAST_UPDUSR_ID
)VALUES(
#qestnrTmplatId#
, #qestnrId#
, #qestnrRespondId#
, #eduAplctOrd#
, #eduChasiOrd#
, #qestnrParticipant#
, #qestnrRespondent#
, SYSDATE
, #frstRegisterId#
, SYSDATE
, #lastUpdusrId#
)
]]>
</insert>
<!-- 응답자정보(설문조사)::기타의견입력 -->
<insert id="QustnrRespondManage.insertSubjRespond">
/* QustnrRespondManage.insertSubjRespond */
MERGE INTO VEA_SUL_OPINION
USING DUAL
ON(
QUSTNR_TMPLAT_ID=#qestnrTmplatId#
AND qestnr_Id=#qestnrId#
AND edu_aplct_ord=#eduAplctOrd#
AND edu_chasi_ord=#eduChasiOrd#
AND user_Id=#userId#
)
WHEN NOT MATCHED THEN
INSERT
(
QUSTNR_TMPLAT_ID
, QESTNR_ID
, EDU_APLCT_ORD
, EDU_CHASI_ORD
, USER_ID
, QUSTNR_CN
, FRST_REGIST_PNTTM
, FRST_REGISTER_ID
, LAST_UPDT_PNTTM
, LAST_UPDUSR_ID
)
VALUES(
#qestnrTmplatId#
, #qestnrId#
, #eduAplctOrd#
, #eduChasiOrd#
, #userId#
, #qustnrCn#
, SYSDATE
, #frstRegisterId#
, SYSDATE
, #lastUpdusrId#
)
WHEN MATCHED THEN
UPDATE
SET last_updusr_id = #lastUpdusrId#
, last_updt_pnttm = SYSDATE
, QUSTNR_CN = #qustnrCn#
</insert>
</sqlMap>

View File

@ -0,0 +1,669 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 강사, 강사상세 테이블 -->
<sqlMap namespace="VEInstrDetail">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEInstrDetailVO" type="kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEInstrDetailDAO.table_name">
ve_instr_detail
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEInstrDetailDAO.column_name">
instr_div,
user_id,
instr_detail_ord,
instr_nm,
phone,
email,
post,
addr,
addr_detail,
rsdne,
d_birth,
final_schol,
mjr,
appt_yr,
appt_div,
actvt_carer,
mn_lctr_cn,
pht_atch_file_id,
blng,
pstn,
prfsn_fld,
sbmt_yn,
sbmt_pnttm,
aprvl_cd,
aprvl_pnttm,
aprvl_id,
aprvl_cn,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id,
use_yn,
qlfct_end_yn,
qlfct_end_pnttm,
qlfct_end_cn,
div_cd,
appt_dt,
hchk_dt,
rmrks,
memo,
sig_memo,
hope_edu_fld
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEInstrDetailDAO.select_column_name">
a.instr_div AS instrDiv,
a.user_id AS userId,
(SELECT user_nm FROM COMVNUSERMASTER WHERE USER_ID = a.user_id) AS userNm,
a.instr_detail_ord AS instrDetailOrd,
a.instr_nm AS instrNm,
a.phone AS phone,
a.email AS email,
a.post AS post,
a.addr AS addr,
a.addr_detail AS addrDetail,
a.rsdne AS rsdne,
a.d_birth AS dBirth,
/*
a.d_birth AS Birth,
*/
/*
IF (length(a.d_birth)=8,DATE_FORMAT(STR_TO_DATE(a.d_birth, '%Y%m%d'),'%Y-%m-%d'),IF (length(a.d_birth)=6,DATE_FORMAT(STR_TO_DATE(a.d_birth, '%y%m%d'),'%Y-%m-%d'),'')) AS Birth,
*/
'' AS Birth,
a.final_schol AS finalSchol,
a.mjr AS mjr,
a.appt_yr AS apptYr,
a.actvt_carer AS actvtCarer,
a.mn_lctr_cn AS mnLctrCn,
a.pht_atch_file_id AS phtAtchFileId,
a.blng AS blng,
a.pstn AS pstn,
a.prfsn_fld AS prfsnFld,
a.sbmt_yn AS sbmtYn,
a.sbmt_pnttm AS sbmtPnttm,
a.aprvl_cd AS aprvlCd,
<!-- a.aprvl_pnttm AS aprvlPnttm, -->
TO_CHAR(a.aprvl_pnttm,'YYYY-MM-DD') AS aprvlPnttm,
a.aprvl_id AS aprvlId,
a.aprvl_cn AS aprvlCn,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId,
<isNotEmpty property="excelYn">
(SELECT a0.code_nm
FROM LETTCCMMNDETAILCODE a0
WHERE a0.code_id='VE0018'
AND a0.code =a.div_cd
)
AS divCd,
(SELECT a0.code_nm
FROM LETTCCMMNDETAILCODE a0
WHERE a0.code_id='VE0002'
AND a0.code =a.appt_div
)
AS apptDiv,
</isNotEmpty>
<isEmpty property="excelYn">
a.div_cd AS divCd,
a.appt_div AS apptDiv,
</isEmpty>
a.use_yn AS useYn,
a.qlfct_end_yn AS qlfctEndYn,
a.qlfct_end_pnttm AS qlfctEndPnttm,
a.qlfct_end_cn AS qlfctEndCn,
a.appt_dt AS apptDt,
a.hchk_dt AS hchkDt,
a.rmrks AS rmrks,
a.memo AS memo,
a.sig_memo AS sigMemo,
a.hope_edu_fld AS hopeEduFld
</sql>
<!-- 강사 등록 C -->
<insert id="VEInstrDetailDAO.insert" parameterClass="VEInstrDetailVO">
/* VEInstrDetailDAO.insert */
<!-- 강사 상세 순번 처리 -->
<!-- <selectKey resultClass="string" keyProperty="instrDetailOrd" >
SELECT TO_NUMBER(IFNULL(MAX(TO_NUMBER(instr_detail_ord)),'0'))+1 FROM ve_instr_detail
WHERE user_id = #userId#
AND instr_div = #instrDiv#
</selectKey> -->
INSERT INTO <include refid="VEInstrDetailDAO.table_name"/> (
<include refid="VEInstrDetailDAO.column_name"/>
)VALUES(
#instrDiv#,
#userId#,
#instrDetailOrd#,
#instrNm#,
#phone#,
#email#,
#post#,
#addr#,
#addrDetail#,
#rsdne#,
#dBirth#,
#finalSchol#,
#mjr#,
#apptYr#,
#apptDiv#,
#actvtCarer#,
#mnLctrCn#,
#phtAtchFileId#,
#blng#,
#pstn#,
#prfsnFld#,
#sbmtYn#,
#sbmtPnttm#,
#aprvlCd#,
#aprvlPnttm#,
#aprvlId#,
#aprvlCn#,
SYSDATE,
#frstRegisterId#,
SYSDATE,
#lastUpdusrId#,
<!-- useYn 값 없을 시 N 기본 -->
<isNotEmpty property="useYn">
#useYn#,
</isNotEmpty>
<isEmpty property="useYn">
'N',
</isEmpty>
#qlfctEndYn#,
#qlfctEndPnttm#,
#qlfctEndCn#,
#divCd#,
#apptDt#,
#hchkDt#,
#rmrks#,
#memo#,
#sigMemo#,
#hopeEduFld#
)
</insert>
<!-- 강사 등록 C -->
<insert id="VEInstrDetailDAO.insertDup" parameterClass="VEInstrDetailVO">
/* VEInstrDetailDAO.insertDup */
MERGE INTO <include refid="VEInstrDetailDAO.table_name"/>
USING DUAL
ON(instr_nm=#instrNm# AND phone=#phone#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEInstrDetailDAO.column_name"/>
)
VALUES(
#instrDiv#,
#userId#,
#instrDetailOrd#,
#instrNm#,
#phone#,
#email#,
#post#,
#addr#,
#addrDetail#,
#rsdne#,
#dBirth#,
#finalSchol#,
#mjr#,
#apptYr#,
#apptDiv#,
#actvtCarer#,
#mnLctrCn#,
#phtAtchFileId#,
#blng#,
#pstn#,
#prfsnFld#,
#sbmtYn#,
#sbmtPnttm#,
#aprvlCd#,
#aprvlPnttm#,
#aprvlId#,
#aprvlCn#,
SYSDATE,
#frstRegisterId#,
SYSDATE,
#lastUpdusrId#,
<!-- useYn 값 없을 시 N 기본 -->
<isNotEmpty property="useYn">
#useYn#,
</isNotEmpty>
<isEmpty property="useYn">
'N',
</isEmpty>
#qlfctEndYn#,
#qlfctEndPnttm#,
#qlfctEndCn#,
#divCd#,
#apptDt#,
#hchkDt#,
#rmrks#,
#memo#,
#sigMemo#,
#hopeEduFld#
)
WHEN MATCHED THEN
UPDATE
SET last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
<isNotEmpty property="email">
, email =#email#
</isNotEmpty><isNotEmpty property="post">
, post =#post#
</isNotEmpty><isNotEmpty property="addr">
, addr =#addr#
</isNotEmpty><isNotEmpty property="addrDetail">
, addr_detail =#addrDetail#
</isNotEmpty><isNotEmpty property="rsdne">
, rsdne =#rsdne#
</isNotEmpty><isNotEmpty property="dBirth">
, d_birth =#dBirth#
</isNotEmpty><isNotEmpty property="finalSchol">
, final_schol =#finalSchol#
</isNotEmpty><isNotEmpty property="mjr">
, mjr =#mjr#
</isNotEmpty><isNotEmpty property="apptYr">
, appt_yr =#apptYr#
</isNotEmpty><isNotEmpty property="apptDiv">
, appt_div =#apptDiv#
</isNotEmpty><isNotEmpty property="actvtCarer">
, actvt_carer =#actvtCarer#
</isNotEmpty><isNotEmpty property="mnLctrCn">
, mn_lctr_cn =#mnLctrCn#
</isNotEmpty><isNotEmpty property="blng">
, blng =#blng#
</isNotEmpty><isNotEmpty property="pstn">
, pstn =#pstn#
</isNotEmpty><isNotEmpty property="prfsnFld">
, prfsn_fld =#prfsnFld#
</isNotEmpty><isNotEmpty property="divCd">
, div_cd =#divCd#
</isNotEmpty><isNotEmpty property="rmrks">
, rmrks =#rmrks#
</isNotEmpty><isNotEmpty property="memo">
, memo =#memo#
</isNotEmpty><isNotEmpty property="sigMemo">
, sig_memo =#sigMemo#
</isNotEmpty><isNotEmpty property="hopeEduFld">
, hope_edu_fld =#hopeEduFld#
</isNotEmpty>
</insert>
<!-- 강사 정보 R -->
<select id="VEInstrDetailDAO.selectDetail" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
/* 강사 추가 정보 VEInstrDetailDAO.selectDetail */
SELECT
<include refid="VEInstrDetailDAO.select_column_name"/>
, TO_CHAR(SYSDATE,'YYYY')||'년'||TO_CHAR(SYSDATE,'MM')||'월'||TO_CHAR(SYSDATE,'DD')||'일'
AS hstryPnttm
, b.desc_1 AS desc1
, b.desc_2 AS desc2
, b.desc_3 AS desc3
, b.desc_4 AS desc4
FROM
<include refid="VEInstrDetailDAO.table_name"/> a
, ve_instr b
WHERE
a.instr_div = #instrDiv#
AND a.user_id = #userId#
<isNotEmpty property="instrDetailOrd">
AND a.instr_detail_ord = #instrDetailOrd#
</isNotEmpty>
<!-- 사용자 수정화면 - 가장 마지막 정보(사용Y) -->
<isNotEmpty property="useYn">
AND a.use_yn = #useYn#
</isNotEmpty>
AND a.user_id = b.user_id
</select>
<!-- 강사 정보 R 4 강사활동확인서-->
<select id="VEInstrDetailDAO.selectDetail4actvtHstry" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
/* 강사 추가 정보 VEInstrDetailDAO.selectDetail4actvtHstry */
SELECT
<include refid="VEInstrDetailDAO.select_column_name"/>
, TO_CHAR(c.STATE_PNTTM,'YYYY')||'년'||TO_CHAR(c.STATE_PNTTM,'MM')||'월'||TO_CHAR(c.STATE_PNTTM,'DD')||'일'
AS hstryPnttm
, b.desc_1 AS desc1
, b.desc_2 AS desc2
, b.desc_3 AS desc3
, b.desc_4 AS desc4
, c.sex
, c.PURPOSE
, c.bsns_nmbr AS bsnsNmbr
, c.bsns_nm AS bsnsNm
, c.docu_nmbr AS docuNmbr
, c.actvt_period AS actvtPeriod
, TO_CHAR(c.state_pnttm, 'YYYY') || '-' || c.docu_nmbr || '호' AS docuNmbrDp
FROM
<include refid="VEInstrDetailDAO.table_name"/> a
, ve_instr b
, ve_instr_detail_actvt_hstry c
WHERE
a.instr_div = #instrDiv#
AND a.user_id = #userId#
<isNotEmpty property="instrDetailOrd">
AND a.instr_detail_ord = #instrDetailOrd#
</isNotEmpty>
<!-- 사용자 수정화면 - 가장 마지막 정보(사용Y) -->
<isNotEmpty property="useYn">
AND a.use_yn = #useYn#
</isNotEmpty>
AND a.user_id = b.user_id
AND c.INSTR_DETAIL_ACTVT_HSTRY_ORD =#instrDetailActvtHstryOrd#
</select>
<!-- 강사 정보 U -->
<update id="VEInstrDetailDAO.update" parameterClass="VEInstrDetailVO">
UPDATE
<include refid="VEInstrDetailDAO.table_name"/>
SET
<!-- 운영자가 등록한 임시 temp ID를 실제 사용자 ID로 수정 -->
<isNotEmpty property="rqstId">
user_id = #rqstId#,
</isNotEmpty>
<isNotEmpty property="instrNm">
instr_nm = #instrNm#,
</isNotEmpty>
<isNotEmpty property="phone">
phone = #phone#,
</isNotEmpty>
<isNotEmpty property="email">
email = #email#,
</isNotEmpty>
<isNotEmpty property="post">
post = #post#,
</isNotEmpty>
<isNotEmpty property="addr">
addr = #addr#,
</isNotEmpty>
<isNotEmpty property="addrDetail">
addr_detail = #addrDetail#,
</isNotEmpty><isNotEmpty property="rsdne">
rsdne = #rsdne#,
</isNotEmpty><isNotEmpty property="dBirth">
d_birth = #dBirth#,
</isNotEmpty><isNotEmpty property="finalSchol">
final_schol = #finalSchol#,
</isNotEmpty><isNotEmpty property="mjr">
mjr = #mjr#,
</isNotEmpty><isNotEmpty property="apptYr">
appt_yr = #apptYr#,
</isNotEmpty><isNotEmpty property="apptDiv">
appt_div = #apptDiv#,
</isNotEmpty><isNotEmpty property="actvtCarer">
actvt_carer = #actvtCarer#,
</isNotEmpty><isNotEmpty property="mnLctrCn">
mn_lctr_cn = #mnLctrCn#,
</isNotEmpty><isNotEmpty property="phtAtchFileId">
pht_atch_file_id = #phtAtchFileId#,
</isNotEmpty><isNotEmpty property="blng">
blng = #blng#,
</isNotEmpty><isNotEmpty property="pstn">
pstn = #pstn#,
</isNotEmpty><isNotEmpty property="prfsnFld">
prfsn_fld = #prfsnFld#,
</isNotEmpty><isNotEmpty property="sbmtYn">
sbmt_yn = #sbmtYn#,
</isNotEmpty><isNotEmpty property="sbmtPnttm">
sbmt_pnttm = #sbmtPnttm#,
</isNotEmpty><isNotEmpty property="aprvlCd">
aprvl_cd = #aprvlCd#,
</isNotEmpty><isNotEmpty property="aprvlPnttm">
aprvl_pnttm = #aprvlPnttm#,
</isNotEmpty><isNotEmpty property="aprvlId">
aprvl_id = #aprvlId#,
</isNotEmpty><isNotEmpty property="aprvlCn">
aprvl_cn = #aprvlCn#,
</isNotEmpty><isNotEmpty property="useYn">
use_yn = #useYn#,
</isNotEmpty><isNotEmpty property="qlfctEndYn">
qlfct_end_yn = #qlfctEndYn#,
</isNotEmpty><isNotEmpty property="qlfctEndPnttm">
qlfct_end_pnttm = #qlfctEndPnttm#,
</isNotEmpty><isNotEmpty property="qlfctEndCn">
qlfct_end_cn = #qlfctEndCn#,
</isNotEmpty><isNotEmpty property="divCd">
div_cd = #divCd#,
</isNotEmpty><isNotEmpty property="apptDt">
appt_dt = #apptDt#,
</isNotEmpty><isNotEmpty property="hchkDt">
hchk_dt = #hchkDt#,
</isNotEmpty><isNotEmpty property="rmrks">
rmrks = #rmrks#,
</isNotEmpty><isNotEmpty property="hopeEduFld">
hope_edu_fld = #hopeEduFld#,
</isNotEmpty>
<!-- 요청 시 기존 반려 사유 삭제 -->
<isEqual property="aprvlCd" compareValue="10">
aprvl_cn = '',
</isEqual>
LAST_UPDT_PNTTM = SYSDATE
,LAST_UPDUSR_ID = #lastUpdusrId#
WHERE
instr_div = #instrDiv#
AND user_id = #userId#
AND instr_detail_ord = #instrDetailOrd#
</update>
<!-- 강사 정보 D -->
<delete id="VEInstrDetailDAO.delete" parameterClass="VEInstrDetailVO">
DELETE FROM
<include refid="VEInstrDetailDAO.table_name"/>
WHERE
instr_div = #instrDiv#
AND user_id = #userId#
AND instr_detail_ord = #instrDetailOrd#
</delete>
<!-- 강사 정보 L -->
<select id="VEInstrDetailDAO.selectList" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
/* VEInstrDetailDAO.selectList */
SELECT
<include refid="VEInstrDetailDAO.select_column_name"/>
FROM
<include refid="VEInstrDetailDAO.table_name"/> a
WHERE
1=1
</select>
<!-- 강사 정보 L page -->
<select id="VEInstrDetailDAO.selectPagingList" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
/* VEInstrDetailDAO.selectPagingList */
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEInstrDetailDAO.select_column_name"/>
FROM
ve_instr b
, <include refid="VEInstrDetailDAO.table_name"/> a
WHERE
1=1
AND a.user_id=b.user_id
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="userId">
AND a.user_id=#userId#
</isNotEmpty>
<isNotEmpty property="instrDiv">
AND a.instr_div=#instrDiv#
</isNotEmpty>
ORDER BY 1
, a.sbmt_pnttm DESC
<isEmpty property="orderByQuery">
, b.user_id desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 선정교사 정보 등록 C -->
<insert id="VEInstrDetailDAO.insertSlctnTeacher" parameterClass="VEInstrDetailVO">
INSERT INTO VE_EDU_SCLTN_TEACHER (
edu_aplct_ord
,div_cd
,awards_hist
,unfth_yn
,extra_pay_yn
,rmrks
,frst_regist_pnttm
,frst_register_id
,rprt_score
)VALUES(
#eduAplctOrd#,
#divCd#,
#awardsHist#,
#unfthYn#,
#extraPayYn#,
#rmrks#,
SYSDATE,
#frstRegisterId#,
#rprtScore#
)
</insert>
<!-- 선정교사 정보 D -->
<delete id="VEInstrDetailDAO.deleteSlctnTeacher" parameterClass="VEInstrDetailVO">
DELETE FROM
VE_EDU_SCLTN_TEACHER
WHERE
edu_aplct_ord = #eduAplctOrd#
AND div_cd = #divCd#
</delete>
<select id="VEInstrDetailDAO.selectSlctnTeacher" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
/* VEInstrDetailDAO.selectSlctnTeacher */
SELECT
a.edu_aplct_ord AS eduAplctOrd
,a.div_cd AS divCd
,a.awards_hist AS awardsHist
,a.unfth_yn AS unfthYn
,a.extra_pay_yn AS extraPayYn
,a.rmrks AS rmrks
,a.rprt_score AS rprtScore
,TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm
,a.frst_register_id AS frstRegisterId
FROM
VE_EDU_SCLTN_TEACHER a
WHERE
a.edu_aplct_ord = #eduAplctOrd#
AND a.div_cd = #divCd#
</select>
<!-- 강사 메모 수정 U -->
<update id="VEInstrDetailDAO.updateInstrMemo" parameterClass="VEInstrDetailVO">
UPDATE
VE_INSTR_DETAIL
SET
MEMO = #memo#
WHERE
USER_ID = #userId#
AND
INSTR_DETAIL_ORD = #instrDetailOrd#
AND
INSTR_DIV = #instrDiv#
</update>
<!-- 강사 메모 수정 U -->
<update id="VEInstrDetailDAO.updateInstrSigMemo" parameterClass="VEInstrDetailVO">
UPDATE
VE_INSTR_DETAIL
SET
SIG_MEMO = #sigMemo#
WHERE
USER_ID = #userId#
AND
INSTR_DETAIL_ORD = #instrDetailOrd#
AND
INSTR_DIV = #instrDiv#
</update>
<select id="VEInstrDetailDAO.selectLastYearDetail" parameterClass="vEEduAplctVO" resultClass="VEInstrDetailVO">
/* VEInstrDetailDAO.selectSlctnTeacher */
SELECT
a.edu_aplct_ord AS eduAplctOrd
,a.div_cd AS divCd
,a.awards_hist AS awardsHist
,a.unfth_yn AS unfthYn
,a.extra_pay_yn AS extraPayYn
,a.rmrks AS rmrks
,a.rprt_score AS rprtScore
,TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm
,a.frst_register_id AS frstRegisterId
FROM
VE_EDU_SCLTN_TEACHER a
WHERE
a.edu_aplct_ord = (SELECT MAX(edu_aplct_ord)
FROM VE_EDU_APLCT
WHERE user_id = #userId#
AND TO_CHAR(SBMT_PNTTM,'YYYY') = #lastYear#)
</select>
</sqlMap>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,379 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 강사, 강사상세 테이블 -->
<sqlMap namespace="VELctrMIX">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VELctrDetailVO" type="kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO"/>
<!-- 공통 테이블 명 -->
<sql id="VELctrMIXDAO.table_name">
ve_lctr_stng
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VELctrMIXDAO.column_name">
instr_div,
user_id,
lctr_stng_ord,
sun_lctr_yn,
mon_lctr_yn,
tue_lctr_yn,
wed_lctr_yn,
thu_lctr_yn,
fri_lctr_yn,
sat_lctr_yn,
zoom_yn,
yr_mxmm_asgnm_tm,
mnt_mnmm_tm,
prfrn_fld_cd,
onln_psbl_yn,
sbmt_yn,
sbmt_pnttm,
aprvl_cd,
aprvl_pnttm,
aprvl_id,
aprvl_cn,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id,
use_yn,
isltn_psbl_yn,
cntns_lctr_psbl_yn,
lctr_stng_yr,
asgnm_tm_1,
asgnm_tm_2,
asgnm_tm_3,
asgnm_tm_4,
asgnm_tm_5,
asgnm_tm_6,
asgnm_tm_7,
asgnm_tm_8,
asgnm_tm_9,
asgnm_tm_10,
asgnm_tm_11,
asgnm_tm_12
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VELctrMIXDAO.select_column_name">
a.instr_div AS instrDiv,
a.user_id AS userId,
a.lctr_stng_ord AS lctrStngOrd,
a.sun_lctr_yn AS sunLctrYn,
a.mon_lctr_yn AS monLctrYn,
a.tue_lctr_yn AS tueLctrYn,
a.wed_lctr_yn AS wedLctrYn,
a.thu_lctr_yn AS thuLctrYn,
a.fri_lctr_yn AS friLctrYn,
a.sat_lctr_yn AS satLctrYn,
a.zoom_yn AS zoomYn,
a.yr_mxmm_asgnm_tm AS yrMxmmAsgnmTm,
a.mnt_mnmm_tm AS mntMnmmTm,
a.prfrn_fld_cd AS prfrnFldCd,
a.onln_psbl_yn AS onlnPsblYn,
a.sbmt_yn AS sbmtYn,
a.sbmt_pnttm AS sbmtPnttm,
a.aprvl_cd AS aprvlCd,
a.aprvl_pnttm AS aprvlPnttm,
a.aprvl_id AS aprvlId,
a.aprvl_cn AS aprvlCn,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId,
a.use_yn AS useYn,
a.isltn_psbl_yn AS isltnPsblYn,
a.cntns_lctr_psbl_yn AS cntnsLctrPsblYn,
a.lctr_stng_yr AS lctrStngYr,
a.asgnm_tm_1 AS asgnmTm1,
a.asgnm_tm_2 AS asgnmTm2,
a.asgnm_tm_3 AS asgnmTm3,
a.asgnm_tm_4 AS asgnmTm4,
a.asgnm_tm_5 AS asgnmTm5,
a.asgnm_tm_6 AS asgnmTm6,
a.asgnm_tm_7 AS asgnmTm7,
a.asgnm_tm_8 AS asgnmTm8,
a.asgnm_tm_9 AS asgnmTm9,
a.asgnm_tm_10 AS asgnmTm10,
a.asgnm_tm_11 AS asgnmTm11,
a.asgnm_tm_12 AS asgnmTm12
</sql>
<!-- 강의 설정 정보 R -->
<select id="VELctrMIXDAO.selectDetail" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
/* 강의 설정 정보 테이블 */
SELECT
<include refid="VELctrMIXDAO.select_column_name"/>
FROM
<include refid="VELctrMIXDAO.table_name"/> a
WHERE
a.instr_div = #instrDiv#
AND a.user_id = #userId#
<isNotEmpty property="useYn">
AND a.use_yn=#useYn# /*사용중인 설정값을 가져온다. Y 로 설정*/
</isNotEmpty><isNotEmpty property="lctrStngOrd">
AND a.lctr_stng_ord=#lctrStngOrd# /*사용자가 저장중인 row를 가져오는 설정*/
</isNotEmpty>
ORDER BY lctr_stng_ord desc
LIMIT 1
</select>
<!-- 강의설정 수정화면 정보 -->
<select id="VELctrMIXDAO.selectLctrStngDetail" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT
<include refid="VELctrMIXDAO.select_column_name"/>
FROM
<include refid="VELctrMIXDAO.table_name"/> a
WHERE
a.instr_div = #instrDiv#
AND a.user_id = #userId#
AND a.sbmt_yn IS NULL
AND a.use_yn = 'N'
ORDER BY lctr_stng_ord desc
LIMIT 1
</select>
<!-- 강의설정 요청 리스트 불러오기 -->
<select id="VELctrMIXDAO.selectLctrStngSbmtList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT
<include refid="VELctrMIXDAO.select_column_name"/>
FROM
<include refid="VELctrMIXDAO.table_name"/> a
WHERE
a.instr_div = #instrDiv#
AND a.user_id = #userId#
AND a.sbmt_yn ='Y'
<isNotEmpty property="aprvlCd">
AND a.aprvl_cd = #aprvlCd#
</isNotEmpty>
<isEmpty property="aprvlCd">
AND a.aprvl_cd IS NOT NULL
</isEmpty>
</select>
<!-- 강사 정보 R -->
<select id="VELctrMIXDAO.selectDupCheck" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT
count(*) totCnt
FROM
ve_lctr_area_mng
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
</select>
<!-- 강사 정보 L -->
<select id="VELctrMIXDAO.selectList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT
<include refid="VELctrMIXDAO.select_column_name"/>
FROM
<include refid="VELctrMIXDAO.table_name"/> a
WHERE
1=1
</select>
<!-- 강사 정보 L page -->
<select id="VELctrMIXDAO.selectPagingList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VELctrMIXDAO.select_column_name"/>
FROM
<include refid="VELctrMIXDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="userId">
AND a.user_id=#userId#
</isNotEmpty>
<isNotEmpty property="instrDiv">
AND a.instr_div=#instrDiv#
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, a.user_id desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 설정 년월L -->
<select id="VELctrMIXDAO.selectStngYrMntList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT CONCAT(aa.stndrd_yr,bb.stndrd_mnt) AS stngYrMnt
FROM (
SELECT a.stndrd_yr*1+b.stndrd_mnt*1 stndrd_yr
FROM (
SELECT '2022' stndrd_yr
)a
,
(
SELECT '01' stndrd_mnt
UNION ALL SELECT '02'
UNION ALL SELECT '03'
UNION ALL SELECT '04'
UNION ALL SELECT '05'
UNION ALL SELECT '06'
UNION ALL SELECT '07'
UNION ALL SELECT '08'
UNION ALL SELECT '09'
UNION ALL SELECT '10'
UNION ALL SELECT '11'
UNION ALL SELECT '12'
)b
)aa
,(
SELECT '01' stndrd_mnt
UNION ALL SELECT '02'
UNION ALL SELECT '03'
UNION ALL SELECT '04'
UNION ALL SELECT '05'
UNION ALL SELECT '06'
UNION ALL SELECT '07'
UNION ALL SELECT '08'
UNION ALL SELECT '09'
UNION ALL SELECT '10'
UNION ALL SELECT '11'
UNION ALL SELECT '12'
)bb
WHERE 1=1
AND TO_CHAR(DATE_ADD(SYSDATE, INTERVAL 1 month),'YYYYMM')>=aa.stndrd_yr||bb.stndrd_mnt
ORDER BY CONCAT(aa.stndrd_yr,bb.stndrd_mnt) DESC
</select>
<!-- 설정 년월L -->
<select id="VELctrMIXDAO.selectStngYrList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
/* VELctrMIXDAO.selectStngYrList */
SELECT concat(round(CAST(a.stndrd_yr as int)*1+CAST(b.stndrd_mnt as int)*1),'') stngYr
, CASE
WHEN CAST(TO_CHAR(CURRENT_DATE,'YYYY') as int)*1= (CAST(a.stndrd_yr as int)*1+CAST(b.stndrd_mnt as int)*1)*1 THEN 1
ELSE 0 END AS useYn
/*
, IF (DATE_FORMAT(NOW(),'%Y')= concat(round(a.stndrd_yr*1+b.stndrd_mnt*1),''),1,0) useYn
*/
FROM (
SELECT '2022' stndrd_yr
)a
,
(
SELECT '01' stndrd_mnt
UNION ALL SELECT '02'
UNION ALL SELECT '03'
UNION ALL SELECT '04'
UNION ALL SELECT '05'
UNION ALL SELECT '06'
UNION ALL SELECT '07'
UNION ALL SELECT '08'
UNION ALL SELECT '09'
UNION ALL SELECT '10'
UNION ALL SELECT '11'
UNION ALL SELECT '12'
UNION ALL SELECT '13'
UNION ALL SELECT '14'
UNION ALL SELECT '15'
UNION ALL SELECT '16'
UNION ALL SELECT '17'
UNION ALL SELECT '18'
UNION ALL SELECT '19'
UNION ALL SELECT '20'
UNION ALL SELECT '0'
)b
WHERE CAST(to_char(CURRENT_DATE, 'yyyy') as int) >= CAST(concat(round(CAST(a.stndrd_yr as int) * 1 + CAST(b.stndrd_mnt as int) * 1 - 1), '') as int)
ORDER BY CAST(a.stndrd_yr as int)*1+CAST(b.stndrd_mnt as int)*1
</select>
<!-- 설정 년월L -->
<select id="VELctrMIXDAO.selectStngMntList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
/* VELctrMIXDAO.selectStngMntList */
SELECT b.stngMnt
, CASE WHEN TO_CHAR(SYSDATE,'MM') = b.stngMnt then 1 else 0 end AS useYn
/*
, IF (DATE_FORMAT(NOW(),'%m')= b.stngMnt, 1, 0) useYn
*/
FROM
(
SELECT '01' stngMnt
UNION ALL SELECT '02'
UNION ALL SELECT '03'
UNION ALL SELECT '04'
UNION ALL SELECT '05'
UNION ALL SELECT '06'
UNION ALL SELECT '07'
UNION ALL SELECT '08'
UNION ALL SELECT '09'
UNION ALL SELECT '10'
UNION ALL SELECT '11'
UNION ALL SELECT '12'
)b
ORDER BY b.stngMnt
</select>
<!-- 일자중복여부 체크 -->
<select id="VELctrMIXDAO.selectDupDateCount" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT count(*) AS totCnt
FROM ve_lctr_rsrch_mng a
WHERE 1=1
AND (
(a.rsrch_strt_dt BETWEEN #rsrchStrtDt# AND #rsrchEndDt#)
OR
(a.rsrch_end_dt BETWEEN #rsrchStrtDt# AND #rsrchEndDt#)
OR
(#rsrchStrtDt# BETWEEN a.rsrch_strt_dt AND a.rsrch_end_dt)
OR
(#rsrchEndDt# BETWEEN a.rsrch_strt_dt AND a.rsrch_end_dt)
)
AND CONCAT(a.rsrch_instr_div, a.stng_yr_mnt)!=CONCAT(#rsrchInstrDiv#, #stngYrMnt#)
</select>
</sqlMap>

View File

@ -0,0 +1,336 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 과정 테이블 -->
<sqlMap namespace="VERsdncMIX">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VERsdncVO" type="kcc.ve.instr.tngrVisitEdu.rsdncInfo.service.VERsdncVO"/>
<!-- 공통 테이블 명 -->
<sql id="VERsdncMIXDAO.table_name">
ve_rsdnc
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VERsdncMIXDAO.column_name">
post_id,
post,
post_ord,
one_depth_nm,
two_depth_nm,
three_depth_nm,
four_depth_nm,
five_depth_nm,
addr
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VERsdncMIXDAO.select_column_name">
a.post_id AS postId,
a.post AS post,
a.post_ord AS postOrd,
a.one_depth_nm AS oneDepthNm,
a.two_depth_nm AS twoDepthNm,
a.three_depth_nm AS threeDepthNm,
a.four_depth_nm AS fourDepthNm,
a.five_depth_nm AS fiveDepthNm,
a.addr AS addr
</sql>
<!-- 강사 정보 L -->
<select id="VERsdncMIXDAO.selectList" parameterClass="VERsdncVO" resultClass="VERsdncVO">
SELECT
<include refid="VERsdncMIXDAO.select_column_name"/>
FROM
<include refid="VERsdncMIXDAO.table_name"/> a
WHERE
1=1
a.post_id = #postId#
<isNotEmpty property="postOrd">
AND a.post_ord=#postOrd#
</isNotEmpty>
</select>
<!-- 거주지 1단계 -->
<select id="VERsdncMIXDAO.selectRsdncStep1List" parameterClass="VERsdncVO" resultClass="VERsdncVO">
/* 강의 지역 - Depth 1 */
SELECT one_depth_nm AS oneDepthNm
, MAX(post_id) postId
FROM ve_rsdnc a
GROUP BY one_depth_nm
ORDER BY one_depth_nm
</select>
<!-- 거주지 2단계 -->
<select id="VERsdncMIXDAO.selectRsdncStep2List" parameterClass="VERsdncVO" resultClass="VERsdncVO">
/* 강의 지역 - Depth 2 VERsdncMIXDAO.selectRsdncStep2List */
SELECT aa.*
, NVL(bb.area_cd, 0) cnt
FROM (
SELECT one_depth_nm AS oneDepthNm
/*
, a.two_depth_nm AS twoDepthNm
*/
/*
, IF(a.two_depth_nm is NULL OR a.two_depth_nm ='',a.three_depth_nm, a.two_depth_nm) AS twoDepthNm
*/
, CASE WHEN a.two_depth_nm IS NULL OR a.two_depth_nm ='' THEN a.three_depth_nm ELSE a.two_depth_nm END AS twoDepthNm
, MAX(post_id) postId
FROM ve_rsdnc a
WHERE 1=1
<isNotEmpty property="oneDepthNm">
AND a.one_depth_nm=#oneDepthNm#
</isNotEmpty>
GROUP BY one_depth_nm
/*
, IF(a.two_depth_nm is NULL OR a.two_depth_nm ='',a.three_depth_nm, a.two_depth_nm)
*/
, CASE WHEN a.two_depth_nm IS NULL OR a.two_depth_nm ='' THEN a.three_depth_nm ELSE a.two_depth_nm END
/*
, a.two_depth_nm
*/
ORDER BY one_depth_nm
/*
, IF(a.two_depth_nm is NULL OR a.two_depth_nm ='',a.three_depth_nm, a.two_depth_nm)
*/
, CASE WHEN a.two_depth_nm IS NULL OR a.two_depth_nm ='' THEN a.three_depth_nm ELSE a.two_depth_nm END
/*
, a.two_depth_nm
*/
)aa
LEFT OUTER JOIN
(
SELECT a.area_cd
, one_depth_nm AS oneDepthNm
, two_depth_nm AS twoDepthNm
FROM ve_lctr_area a
, ve_rsdnc b
WHERE 1 =1
AND a.user_id =#userId#
AND a.instr_div='10'
AND a.area_cd=b.post_id
)bb
ON(
aa.postId=bb.area_cd
OR (
aa.oneDepthNm=bb.oneDepthNm
AND aa.twoDepthNm=bb.twoDepthNm
)
)
/*
WHERE TRIM(aa.twoDepthNm) !=''
*/
WHERE LENGTH(TRIM(aa.twoDepthNm))>0
</select>
<!-- 거주지 2단계 -->
<!-- //강사의 해당 년월의 강의 조사 선택 강의 지역 정보로 사용하도록 수정 - 2023.07.25 -->
<select id="VERsdncMIXDAO.selectRsdncStep2ListNew" parameterClass="VERsdncVO" resultClass="VERsdncVO">
/* 강의 지역 - Depth 2 VERsdncMIXDAO.selectRsdncStep2ListNew */
SELECT aa.*
, NVL(bb.area_cd, 0) cnt
FROM (
SELECT one_depth_nm AS oneDepthNm
/*
, a.two_depth_nm AS twoDepthNm
*/
/*
, IF(a.two_depth_nm is NULL OR a.two_depth_nm ='',a.three_depth_nm, a.two_depth_nm) AS twoDepthNm
*/
, CASE WHEN a.two_depth_nm IS NULL OR a.two_depth_nm ='' THEN a.three_depth_nm ELSE a.two_depth_nm END AS twoDepthNm
, MAX(post_id) postId
FROM ve_rsdnc a
WHERE 1=1
<isNotEmpty property="oneDepthNm">
AND a.one_depth_nm=#oneDepthNm#
</isNotEmpty>
GROUP BY one_depth_nm
/*
, IF(a.two_depth_nm is NULL OR a.two_depth_nm ='',a.three_depth_nm, a.two_depth_nm)
*/
, CASE WHEN a.two_depth_nm IS NULL OR a.two_depth_nm ='' THEN a.three_depth_nm ELSE a.two_depth_nm END
/*
, a.two_depth_nm
*/
ORDER BY one_depth_nm
/*
, IF(a.two_depth_nm is NULL OR a.two_depth_nm ='',a.three_depth_nm, a.two_depth_nm)
*/
, CASE WHEN a.two_depth_nm IS NULL OR a.two_depth_nm ='' THEN a.three_depth_nm ELSE a.two_depth_nm END
/*
, a.two_depth_nm
*/
)aa
LEFT OUTER JOIN
(
/*
SELECT a.area_cd
, one_depth_nm AS oneDepthNm
, two_depth_nm AS twoDepthNm
FROM ve_lctr_area a
, ve_rsdnc b
WHERE 1 =1
AND a.user_id =userId
AND a.instr_div='10'
AND a.area_cd=b.post_id
*/
SELECT c.area_cd ,
d.one_depth_nm AS oneDepthNm ,
d.two_depth_nm AS twoDepthNm
FROM ve_lctr_rsrch_mng a ,
ve_lctr_rsrch_sbmt b ,
ve_lctr_area c ,
ve_rsdnc d
WHERE a.rsrch_instr_div='10'
AND a.stng_yr_mnt =#siteNm#
AND b.user_id =#userId#
AND b.instr_div ='10'
AND a.stng_yr_mnt =b.stng_yr_mnt
AND b.instr_div=c.instr_div
AND b.user_id=c.user_id
AND b.lctr_stng_ord=c.lctr_stng_ord
AND c.area_cd =d.post_id
)bb
ON(
aa.postId=bb.area_cd
OR (
aa.oneDepthNm=bb.oneDepthNm
AND aa.twoDepthNm=bb.twoDepthNm
)
)
/*
WHERE TRIM(aa.twoDepthNm) !=''
*/
WHERE LENGTH(TRIM(aa.twoDepthNm))>0
</select>
<!-- 거주지 2단계 -->
<!-- //관리자에서 강사의 현재 선택 지역 정보를 가져오기 위한 쿼리임 - 2023.07.26 -->
<select id="VERsdncMIXDAO.selectRsdncStep2ListNewAdmin" parameterClass="VERsdncVO" resultClass="VERsdncVO">
/* 강의 지역 - Depth 2 VERsdncMIXDAO.selectRsdncStep2ListNewAdmin */
SELECT aa.*
, NVL(bb.area_cd, 0) cnt
FROM (
SELECT one_depth_nm AS oneDepthNm
/*
, a.two_depth_nm AS twoDepthNm
*/
/*
, IF(a.two_depth_nm is NULL OR a.two_depth_nm ='',a.three_depth_nm, a.two_depth_nm) AS twoDepthNm
*/
, CASE WHEN a.two_depth_nm is NULL OR a.two_depth_nm ='' THEN a.three_depth_nm ELSE a.two_depth_nm END AS twoDepthNm
, MAX(post_id) postId
FROM ve_rsdnc a
WHERE 1=1
<isNotEmpty property="oneDepthNm">
AND a.one_depth_nm=#oneDepthNm#
</isNotEmpty>
GROUP BY one_depth_nm
, CASE WHEN a.two_depth_nm is NULL OR a.two_depth_nm ='' THEN a.three_depth_nm ELSE a.two_depth_nm END
/*
, a.two_depth_nm
*/
ORDER BY one_depth_nm
, CASE WHEN a.two_depth_nm is NULL OR a.two_depth_nm ='' THEN a.three_depth_nm ELSE a.two_depth_nm END
/*
, a.two_depth_nm
*/
)aa
LEFT OUTER JOIN
(
SELECT c.area_cd ,
d.one_depth_nm AS oneDepthNm ,
d.two_depth_nm AS twoDepthNm
FROM ve_lctr_stng a ,
ve_lctr_area c ,
ve_rsdnc d
WHERE 1=1
AND a.user_id =#userId#
AND a.instr_div ='10'
AND a.use_yn='Y'
AND a.instr_div=c.instr_div
AND a.user_id=c.user_id
AND a.lctr_stng_ord=c.lctr_stng_ord
AND c.area_cd =d.post_id
)bb
ON(
aa.postId=bb.area_cd
OR (
aa.oneDepthNm=bb.oneDepthNm
AND aa.twoDepthNm=bb.twoDepthNm
)
)
/*
WHERE TRIM(aa.twoDepthNm) !=''
*/
WHERE LENGTH(TRIM(aa.twoDepthNm))>0
</select>
<!-- 거주지 3단계 -->
<select id="VERsdncMIXDAO.selectRsdncStep3List" parameterClass="VERsdncVO" resultClass="VERsdncVO">
/* 강의 지역 - Depth 3 */
SELECT *
FROM (
SELECT one_depth_nm AS oneDepthNm
, a.two_depth_nm AS twoDepthNm
, a.three_depth_nm AS threeDepthNm
, MAX(post_id) postId
FROM ve_rsdnc a
WHERE 1=1
<isNotEmpty property="oneDepthNm">
AND a.one_depth_nm=#oneDepthNm#
</isNotEmpty>
<isNotEmpty property="twoDepthNm">
AND a.two_depth_nm=#twoDepthNm#
</isNotEmpty>
GROUP BY one_depth_nm, a.two_depth_nm, a.three_depth_nm
UNION ALL
SELECT one_depth_nm AS oneDepthNm
, ' ' AS twoDepthNm
, a.three_depth_nm AS threeDepthNm
, MAX(post_id) postId
FROM ve_rsdnc a
WHERE 1=1
<isNotEmpty property="oneDepthNm">
AND a.one_depth_nm=#oneDepthNm#
</isNotEmpty>
<isNotEmpty property="twoDepthNm">
AND a.three_depth_nm=#twoDepthNm#
</isNotEmpty>
GROUP BY one_depth_nm, a.three_depth_nm, a.three_depth_nm
)aa
ORDER BY aa.oneDepthNm, aa.twoDepthNm, aa.threeDepthNm
</select>
</sqlMap>