You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
4.2 KiB
XML
93 lines
4.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="cokr.xit.base.syslog.dao.LoggingMapper">
|
|
|
|
<resultMap id="logRow" type="cokr.xit.base.syslog.ServiceLog">
|
|
<result property="id" column="LOG_ID"/> <!-- 로그 ID -->
|
|
<result property="type" column="LOG_TYPE"/> <!-- 로그 유형 -->
|
|
<result property="url" column="URL"/> <!-- URL -->
|
|
<result property="className" column="CLS_NM"/> <!-- 클래스 이름 -->
|
|
<result property="methodName" column="MTD_NM"/> <!-- 메소드 이름 -->
|
|
<result property="fileName" column="FILE_NM"/> <!-- 파일 이름 -->
|
|
<result property="dataCount" column="DATA_CNT"/> <!-- 데이터 수 -->
|
|
<result property="fieldNames" column="DATA_NM"/> <!-- 데이터 이름 -->
|
|
<result property="personalInfo" column="PSNL_INFO"/> <!-- 개인 정보 -->
|
|
<result property="userId" column="USER_ID"/> <!-- 사용자 ID -->
|
|
<result property="ipAddress" column="IP_ADDR"/> <!-- 등록 일시 -->
|
|
</resultMap>
|
|
|
|
<select id="getLogs" parameterType="map" resultType="dataobject">
|
|
/* 시스템 로그 조회(loggingMapper.getLogs) */
|
|
<include refid="utility-jar.paging-prefix" />
|
|
SELECT LOG_ID
|
|
, A.LOG_TYPE
|
|
, CASE MTD_NM WHEN 'onLogin' THEN '로그인'
|
|
WHEN 'onLogout' THEN '로그아웃'
|
|
WHEN 'onFailure' THEN '로그인 실패'
|
|
ELSE LOG_TYPE_NM
|
|
END LOG_TYPE_NM
|
|
, URL
|
|
, CLS_NM
|
|
, MTD_NM
|
|
, NULL DSCRP
|
|
, FILE_NM
|
|
, DATA_CNT
|
|
, DATA_NM
|
|
, PSNL_INFO
|
|
, A.USER_ID
|
|
, UPPER(USER_ACNT) AS USER_ACNT
|
|
, USER_NM
|
|
, NSTT_CD
|
|
, IP_ADDR
|
|
, A.REG_DT
|
|
FROM TB_SYS_LOG A LEFT OUTER JOIN
|
|
TB_USER B ON A.USER_ID = B.USER_ID,
|
|
(SELECT 'log-inout' LOG_TYPE, '로그인아웃' LOG_TYPE_NM FROM DUAL UNION
|
|
SELECT 'download' LOG_TYPE, '다운로드' LOG_TYPE_NM FROM DUAL UNION
|
|
SELECT 'service' LOG_TYPE, '서비스' LOG_TYPE_NM FROM DUAL UNION
|
|
SELECT 'web' LOG_TYPE, '웹' LOG_TYPE_NM FROM DUAL
|
|
) C
|
|
<where>
|
|
<if test="fromDate != null"> AND LOG_ID >= CONCAT(#{fromDate}, LPAD(0, 16, '0'))</if>
|
|
<if test="toDate != null"> AND LOG_ID <= CONCAT(#{toDate}, LPAD(9, 16, '9'))</if>
|
|
<if test="logTypes != null"> AND A.LOG_TYPE IN (<foreach collection="logTypes" item="logType" separator=",">#{logType}</foreach>)</if>
|
|
<if test="userIDs != null"> AND USER_ID IN (<foreach collection="userIDs" item="userID" separator=",">#{userID}</foreach>)</if>
|
|
<if test="userAccounts != null"> AND UPPER(USER_ACNT) IN (<foreach collection="userAccounts" item="userAccount" separator=",">UPPER(#{userAccount})</foreach>)</if>
|
|
<if test="userName != null"> AND USER_NM LIKE CONCAT('%', #{userName}, '%')</if>
|
|
AND A.LOG_TYPE = C.LOG_TYPE
|
|
</where>
|
|
<include refid="utility-jar.sortBy" />
|
|
<include refid="utility-jar.paging-suffix" />
|
|
</select>
|
|
|
|
<insert id="insertLog" parameterType="cokr.xit.base.syslog.ServiceLog">/* 시스템 로그 등록(loggingMapper.insertLog) */
|
|
INSERT INTO TB_SYS_LOG (
|
|
LOG_ID <!-- 로그 ID -->
|
|
, LOG_TYPE <!-- 로그 유형 -->
|
|
, URL <!-- URL -->
|
|
, CLS_NM <!-- 클래스 이름 -->
|
|
, MTD_NM <!-- 메소드 이름 -->
|
|
, FILE_NM <!-- 파일 이름 -->
|
|
, DATA_CNT <!-- 데이터 수 -->
|
|
, DATA_NM <!-- 데이터 이름 -->
|
|
, PSNL_INFO <!-- 개인 정보 -->
|
|
, USER_ID <!-- 사용자 ID -->
|
|
, IP_ADDR <!-- IP 주소 -->
|
|
, REG_DT <!-- 등록 일시 -->
|
|
) VALUES (
|
|
CONCAT(<include refid="utility-jar.today" />, LPAD(NEXTVAL(SQ_SYS_LOG), 16, '0')) <!-- 로그 ID -->
|
|
, #{type} <!-- 로그 유형 -->
|
|
, #{url} <!-- URL -->
|
|
, #{className} <!-- 클래스 이름 -->
|
|
, #{methodName} <!-- 메소드 이름 -->
|
|
, #{fileName} <!-- 파일 이름 -->
|
|
, #{dataCount} <!-- 데이터 수 -->
|
|
, #{fieldNames} <!-- 데이터 이름 -->
|
|
, #{personalInfo} <!-- 개인 정보 -->
|
|
, #{userId} <!-- 사용자 ID -->
|
|
, #{ipAddress} <!-- IP 주소 -->
|
|
,<include refid="utility-jar.now" />
|
|
)
|
|
</insert>
|
|
|
|
</mapper> |