
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<?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">
<!--
작 성 자 : takensoft
작 성 일 : 2024.05.23
내 용 : 접속 통계 관련
-->
<mapper namespace="com.takensoft.cms.cntnStats.dao.CntnStatsDAO">
<!-- 사용자 접속 통계 관련 -->
<!--
작성자 : takensoft
작성일 : 2024.05.24
내 용 : 사용자 접속 통계 등록 검증
-->
<select id="userCntnStatsSaveChck" parameterType="CntnStatsVO" resultType="boolean">
SELECT COUNT(user_cntn_id)
FROM user_cntn_stats
WHERE authrt_cd = #{authrtCd}
AND cntn_yr = #{cntnYr}
AND cntn_mm = #{cntnMm}
AND cntn_day = #{cntnDay}
</select>
<!--
작성자 : takensoft
작성일 : 2024.05.23
내 용 : 사용자 접속 통계 등록
-->
<insert id="userCntnStatsSave" parameterType="CntnStatsVO">
INSERT INTO user_cntn_stats (
authrt_cd
, cntn_yr
, cntn_mm
, cntn_day
, cntn_nope
) VALUES (
#{authrtCd}
, #{cntnYr}
, #{cntnMm}
, #{cntnDay}
, 1
)
</insert>
<!--
작성자 : takensoft
작성일 : 2024.05.23
내 용 : 사용자 접속 통계 카운트 증가
-->
<update id="userCntnStatsUpdate" parameterType="CntnStatsVO">
UPDATE user_cntn_stats
SET cntn_nope = cntn_nope + 1
WHERE authrt_cd = #{authrtCd}
AND cntn_yr = #{cntnYr}
AND cntn_mm = #{cntnMm}
AND cntn_day = #{cntnDay}
</update>
<!-- 사용자 접속 통계 관련 -->
<!-- 콘텐츠 접속 통계 관련 -->
<!--
작성자 : takensoft
작성일 : 2024.05.24
내 용 : 콘텐츠 접속 통계 등록 검증
-->
<select id="contsCntnStatsSaveChck" parameterType="CntnStatsVO" resultType="boolean">
SELECT COUNT(conts_cntn_id)
FROM conts_cntn_stats
WHERE conts_id = #{typeId}
AND authrt_cd = #{authrtCd}
AND cntn_yr = #{cntnYr}
AND cntn_mm = #{cntnMm}
AND cntn_day = #{cntnDay}
</select>
<!--
작성자 : takensoft
작성일 : 2024.05.23
내 용 : 컨텐츠 접속 통계 등록
-->
<insert id="contsCntnStatsSave" parameterType="CntnStatsVO">
INSERT INTO conts_cntn_stats (
conts_id
, authrt_cd
, cntn_yr
, cntn_mm
, cntn_day
, cntn_nope
) VALUES (
#{typeId}
, #{authrtCd}
, #{cntnYr}
, #{cntnMm}
, #{cntnDay}
, 1
)
</insert>
<!--
작성자 : takensoft
작성일 : 2024.05.24
내 용 : 콘텐츠 접속 통계 수정
-->
<update id="contsCntnStatsUpdate" parameterType="CntnStatsVO">
UPDATE conts_cntn_stats
SET cntn_nope = cntn_nope + 1
WHERE conts_id = #{typeId}
AND authrt_cd = #{authrtCd}
AND cntn_yr = #{cntnYr}
AND cntn_mm = #{cntnMm}
AND cntn_day = #{cntnDay}
</update>
<!-- 콘텐츠 접속 통계 관련 -->
<!-- 게시판 접속 통계 관련 -->
<!--
작성자 : takensoft
작성일 : 2024.05.24
내 용 : 게시판 접속 통계 등록 검증
-->
<select id="bbsCntnStatsSaveChck" parameterType="CntnStatsVO" resultType="boolean">
SELECT COUNT(bbs_cntn_id)
FROM bbs_cntn_stats
WHERE bbs_id = #{typeId}
AND authrt_cd = #{authrtCd}
AND cntn_yr = #{cntnYr}
AND cntn_mm = #{cntnMm}
AND cntn_day = #{cntnDay}
</select>
<!--
작성자 : takensoft
작성일 : 2024.05.23
내 용 : 게시판 접속 통계 등록
-->
<insert id="bbsCntnStatsSave" parameterType="CntnStatsVO">
INSERT INTO bbs_cntn_stats (
bbs_id
, authrt_cd
, cntn_yr
, cntn_mm
, cntn_day
, cntn_nope
) VALUES (
#{typeId}
, #{authrtCd}
, #{cntnYr}
, #{cntnMm}
, #{cntnDay}
, 1
)
</insert>
<!--
작성자 : takensoft
작성일 : 2024.05.24
내 용 : 게시판 접속 통계 수정
-->
<update id="bbsCntnStatsUpdate" parameterType="CntnStatsVO">
UPDATE bbs_cntn_stats
SET cntn_nope = cntn_nope + 1
WHERE bbs_id = #{typeId}
AND authrt_cd = #{authrtCd}
AND cntn_yr = #{cntnYr}
AND cntn_mm = #{cntnMm}
AND cntn_day = #{cntnDay}
</update>
<!-- 게시판 접속 통계 관련 -->
<!-- 메뉴 접속 통계 관련 -->
<!--
작성자 : takensoft
작성일 : 2024.05.24
내 용 : 메뉴 접속 통계 등록 검증
-->
<select id="menuCntnStatsSaveChck" parameterType="CntnStatsVO" resultType="boolean">
SELECT COUNT(menu_cntn_id)
FROM menu_cntn_stats
WHERE menu_id = #{typeId}
AND authrt_cd = #{authrtCd}
AND cntn_yr = #{cntnYr}
AND cntn_mm = #{cntnMm}
AND cntn_day = #{cntnDay}
</select>
<!--
작성자 : takensoft
작성일 : 2024.05.23
내 용 : 메뉴 접속 통계 등록
-->
<insert id="menuCntnStatsSave" parameterType="CntnStatsVO">
INSERT INTO menu_cntn_stats (
menu_id
, authrt_cd
, cntn_yr
, cntn_mm
, cntn_day
, cntn_nope
) VALUES (
#{typeId}
, #{authrtCd}
, #{cntnYr}
, #{cntnMm}
, #{cntnDay}
, 1
)
</insert>
<!--
작성자 : takensoft
작성일 : 2024.05.24
내 용 : 메뉴 접속 통계 수정
-->
<update id="menuCntnStatsUpdate" parameterType="CntnStatsVO">
UPDATE menu_cntn_stats
SET cntn_nope = cntn_nope + 1
WHERE menu_id = #{typeId}
AND authrt_cd = #{authrtCd}
AND cntn_yr = #{cntnYr}
AND cntn_mm = #{cntnMm}
AND cntn_day = #{cntnDay}
</update>
<!-- 메뉴 접속 통계 관련 -->
<!-- 통계관리 관련 통계 정보 -->
<!--
작성자 : takensoft
작성일 : 2024.05.28
내 용 : 사용자 접속 통계
-->
<!-- 통계관리 관련 통계 정보 -->
<!--
작 성 자 : 박정하
작 성 일 : 2024.05.30
내 용 : 사용자 접속 통계 목록 조회
-->
<select id="selectUserCntnStats" parameterType="HashMap" resultType="HashMap">
SELECT ai.dates
, array_agg(authrt_nm) AS authrt_nm
, array_agg(COALESCE(ucs.cntn_nope, 0)) AS cntn_nope
FROM (
SELECT generate_series(to_date(#{startDt}, 'YYYY-MM-DD')
, to_date(#{endDt}, 'YYYY-MM-DD'), '1 day'::interval)::date AS dates
, authrt_cd , authrt_nm
FROM authrt_info
WHERE use_yn = 'Y'
AND authrt_cd IN ('ROLE_ADMIN', 'ROLE_USER', 'ROLE_NONE') /* 커스텀 권한 조회 필요 시 주석처리 */
ORDER BY reg_dt) AS ai
LEFT JOIN (SELECT authrt_cd, to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') AS cntn_date, cntn_nope FROM user_cntn_stats) AS ucs
ON dates = ucs.cntn_date
AND ai.authrt_cd = ucs.authrt_cd
GROUP BY ai.dates
ORDER BY dates DESC
</select>
<!--
작 성 자 : 박정하
작 성 일 : 2024.05.30
내 용 : 사용자 접속 통계 목록 개수 조회
-->
<select id="selectUserCntnStatsCnt" parameterType="HashMap">
SELECT COALESCE(SUM(cntn_nope), 0)
FROM user_cntn_stats
WHERE to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= to_date(#{startDt}, 'YYYY-MM-DD')
AND to_date(#{endDt}, 'YYYY-MM-DD') >= to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
AND authrt_cd IN ('ROLE_ADMIN', 'ROLE_USER', 'ROLE_NONE') /* 커스텀 권한 조회 필요 시 주석처리 */
</select>
<!--
작 성 자 : 박정하
작 성 일 : 2024.05.30
내 용 : 메뉴별 접속 통계 목록 조회
-->
<select id="selectMenuCntnStats" parameterType="HashMap" resultType="HashMap">
WITH RECURSIVE menu_tree AS (
SELECT '' || mi.menu_nm AS menu_name
, mi.menu_id
FROM menu_info AS mi
WHERE mi.use_yn = 'Y'
AND mi.menu_nm != '메인'
AND up_menu_id = #{menuMainDepth}
UNION ALL
SELECT mt.menu_name || ' > ' || mi.menu_nm AS menu_name
, mi.menu_id
FROM menu_tree AS mt
INNER JOIN menu_info AS mi
ON mt.menu_id = mi.up_menu_id
WHERE mi.use_yn = 'Y'
AND mi.menu_nm != '메인'
)
SELECT (SELECT menu_name FROM menu_tree WHERE menu_tree.menu_id = menus.menu_id) AS menu_name
, array_agg(menus.authrt_nm ORDER BY sort_order) AS authrt_nm
, array_agg(menus.cntn_nope ORDER BY sort_order) AS cntn_nope
FROM (SELECT mt.menu_id, mai.authrt_cd, ai.authrt_nm, ai.sort_order, SUM(COALESCE(mcs.cntn_nope, 0)) AS cntn_nope
from menu_tree AS mt
LEFT JOIN (SELECT menu_id, authrt_cd FROM menu_authrt_info WHERE authrt_cd IN ('ROLE_ADMIN', 'ROLE_USER', 'ROLE_NONE')) AS mai /* 커스텀 권한 조회 필요 시 WHERE 조건 주석처리 */
ON mt.menu_id = mai.menu_id
LEFT JOIN (
SELECT authrt_cd, authrt_nm, reg_dt,
ROW_NUMBER() OVER (ORDER BY reg_dt) AS sort_order
FROM authrt_info
WHERE use_yn = 'Y'
) AS ai
ON mai.authrt_cd = ai.authrt_cd
LEFT JOIN menu_cntn_stats AS mcs
ON mt.menu_id = mcs.menu_id
AND mai.authrt_cd = mcs.authrt_cd
AND TO_DATE(CONCAT(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= TO_DATE(#{startDt}, 'YYYY-MM-DD')
AND TO_DATE(#{endDt}, 'YYYY-MM-DD') >= TO_DATE(CONCAT(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
GROUP BY mt.menu_id, mai.authrt_cd, ai.authrt_nm, ai.sort_order) as menus
GROUP BY menu_id
ORDER BY menu_name
</select>
<!-- authrt_ordered AS (-->
<!-- SELECT authrt_cd, authrt_nm, reg_dt,-->
<!-- ROW_NUMBER() OVER (ORDER BY reg_dt) AS sort_order-->
<!-- FROM authrt_info-->
<!-- WHERE use_yn = 'Y'-->
<!-- AND authrt_cd IN ('ROLE_ADMIN', 'ROLE_USER', 'ROLE_NONE')-->
<!-- ),-->
<!-- menus AS (-->
<!-- SELECT-->
<!-- mt.menu_id,-->
<!-- ao.authrt_cd,-->
<!-- ao.authrt_nm,-->
<!-- ao.sort_order,-->
<!-- SUM(COALESCE(mcs.cntn_nope, 0)) AS cntn_nope-->
<!-- FROM menu_tree mt-->
<!-- LEFT JOIN (SELECT menu_id, authrt_cd FROM menu_authrt_info WHERE authrt_cd IN ('ROLE_ADMIN', 'ROLE_USER', 'ROLE_NONE')) mai ON mt.menu_id = mai.menu_id-->
<!-- LEFT JOIN authrt_ordered ao ON mai.authrt_cd = ao.authrt_cd-->
<!-- LEFT JOIN menu_cntn_stats mcs ON mt.menu_id = mcs.menu_id-->
<!-- AND mai.authrt_cd = mcs.authrt_cd-->
<!-- AND TO_DATE(CONCAT(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') BETWEEN TO_DATE(#{startDt}, 'YYYY-MM-DD') AND TO_DATE(#{endDt}, 'YYYY-MM-DD')-->
<!-- GROUP BY mt.menu_id, ao.authrt_cd, ao.authrt_nm, ao.sort_order-->
<!-- )-->
<!-- SELECT-->
<!-- (SELECT menu_name FROM menu_tree WHERE menu_tree.menu_id = menus.menu_id) AS menu_name,-->
<!-- array_agg(menus.authrt_nm ORDER BY menus.sort_order) AS authrt_nm,-->
<!-- array_agg(menus.cntn_nope ORDER BY menus.sort_order) AS cntn_nope-->
<!-- FROM menus-->
<!-- GROUP BY menu_id-->
<!-- ORDER BY menu_name-->
<!--
작 성 자 : 박정하
작 성 일 : 2024.05.30
내 용 : 메뉴별 접속 통계 목록 개수 조회
-->
<select id="selectMenuCntnStatsCnt" parameterType="HashMap">
WITH RECURSIVE menu_tree AS (
SELECT mi.*
, '' || mi.menu_nm AS name
FROM menu_info mi
WHERE up_menu_id = #{menuMainDepth}
UNION ALL
SELECT mi.*
, mt.name || ' > ' || mi.menu_nm AS name
FROM menu_tree mt
INNER JOIN menu_info mi
ON mt.menu_id = mi.up_menu_id
)
SELECT SUM(COALESCE(menu.cntn_nope, 0))
FROM menu_tree
LEFT JOIN (
SELECT menu_id, cntn_nope
FROM menu_cntn_stats
WHERE to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= to_date(#{startDt}, 'YYYY-MM-DD')
AND to_date(#{endDt}, 'YYYY-MM-DD') >= to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
AND authrt_cd IN ('ROLE_ADMIN', 'ROLE_USER', 'ROLE_NONE') /* 커스텀 권한 조회 필요 시 주석처리 */
) as menu
on menu_tree.menu_id = menu.menu_id
WHERE menu_tree.use_yn = 'Y'
AND menu_tree.menu_grd != '0'
AND menu_tree.menu_nm != '메인'
</select>
<!--
작 성 자 : 박정하
작 성 일 : 2024.05.30
내 용 : 게시판 접속 통계 목록 조회
-->
<select id="selectBbsCntnStats" parameterType="HashMap" resultType="HashMap">
SELECT (SELECT bbs_nm from bbs_mng where bbs_mng_id = bbs.bbs_mng_id) AS bbs_nm
, array_agg(bbs.authrt_nm ORDER BY bbs.sort_order) AS authrt_nm
, array_agg(coalesce(cntn_nope, 0) ORDER BY bbs.sort_order) AS cntn_nope
from (
SELECT bm.bbs_mng_id
, ad.authrt_cd
, ad.authrt_nm
, ad.sort_order
from bbs_mng as bm
left join (
SELECT mai.authrt_cd
, ai.authrt_nm
, menu_type_ctgry
, ROW_NUMBER() OVER (ORDER BY ai.reg_dt) AS sort_order
from menu_info as mi
LEFT JOIN menu_authrt_info as mai
on mi.menu_id = mai.menu_id
LEFT JOIN authrt_info AS ai
ON mai.authrt_cd = ai.authrt_cd
WHERE mi.use_yn = 'Y'
AND ai.use_yn='Y'
AND mai.authrt_cd IN ('ROLE_ADMIN', 'ROLE_USER', 'ROLE_NONE') /* 커스텀 권한 조회 필요 시 주석처리 */
order by mi.menu_id
) as ad
on bm.bbs_mng_id = ad.menu_type_ctgry
where bm.use_yn = 'Y'
) as bbs
left join (
select bbs_id
, authrt_cd
, sum(cntn_nope) as cntn_nope
from bbs_cntn_stats
where to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= to_date(#{startDt}, 'YYYY-MM-DD')
AND to_date(#{endDt}, 'YYYY-MM-DD') >= to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
group by bbs_id, authrt_cd
) as bcs
on bbs.bbs_mng_id = bcs.bbs_id
and bbs.authrt_cd = bcs.authrt_cd
group by bbs_mng_id
</select>
<!--
작 성 자 : 박정하
작 성 일 : 2024.05.30
내 용 : 게시판 접속 통계 목록 개수 조회
-->
<select id="selectBbsCntnStatsCnt" parameterType="HashMap">
SELECT SUM(COALESCE(cntn_nope, 0))
FROM (
SELECT bm.bbs_mng_id
, ad.authrt_cd
FROM bbs_mng AS bm
LEFT JOIN (
SELECT mai.authrt_cd
, menu_type_ctgry
FROM menu_info AS mi
LEFT JOIN menu_authrt_info AS mai
ON mi.menu_id = mai.menu_id
LEFT JOIN authrt_info AS ai
ON mai.authrt_cd = ai.authrt_cd
WHERE mi.use_yn = 'Y'
AND ai.use_yn='Y'
AND mai.authrt_cd IN ('ROLE_ADMIN', 'ROLE_USER', 'ROLE_NONE') /* 커스텀 권한 조회 필요 시 주석처리 */
ORDER BY mi.menu_id
) AS ad
ON bm.bbs_mng_id = ad.menu_type_ctgry
WHERE bm.use_yn = 'Y'
) AS bbs
LEFT JOIN (
SELECT bbs_id
, authrt_cd
, SUM(COALESCE(cntn_nope, 0)) as cntn_nope
FROM bbs_cntn_stats
WHERE to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= to_date(#{startDt}, 'YYYY-MM-DD')
AND to_date(#{endDt}, 'YYYY-MM-DD') >= to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
GROUP BY bbs_id, authrt_cd
) AS bcs
ON bbs.bbs_mng_id = bcs.bbs_id
AND bbs.authrt_cd = bcs.authrt_cd
</select>
</mapper>