
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') 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')
</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((SELECT authrt_nm FROM authrt_info WHERE authrt_info.authrt_cd = menus.authrt_cd AND authrt_info.use_yn = 'Y')) AS authrt_nm
, array_agg(cntn_nope) AS cntn_nope
from (select mt.menu_id, mai.authrt_cd, SUM(COALESCE(mcs.cntn_nope, 0)) AS cntn_nope
from menu_tree AS mt
LEFT JOIN menu_authrt_info AS mai
ON mt.menu_id = mai.menu_id
LEFT JOIN authrt_info 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')
WHERE ai.use_yn='Y'
group by mt.menu_id, mai.authrt_cd) as menus
group by menu_id
order by menu_name
</select>
<!--
작 성 자 : 박정하
작 성 일 : 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')
) 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((SELECT authrt_nm FROM authrt_info WHERE authrt_info.authrt_cd = bbs.authrt_cd AND authrt_info.use_yn = 'Y')) AS authrt_nm
, array_agg(coalesce(cntn_nope, 0)) AS cntn_nope
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'
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'
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>