
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
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>