refactor: 访问统计完善

This commit is contained in:
Ray.Hao
2024-07-06 04:54:52 +08:00
parent 0b346ad255
commit d428773be0
6 changed files with 147 additions and 7 deletions

View File

@@ -44,7 +44,7 @@
t1.create_time DESC
</select>
<!-- 获取PV访问量统计数据 -->
<!-- 获取访问量统计列表 -->
<select id="getPvCounts" resultType="com.youlai.system.model.bo.VisitCount">
SELECT
COUNT(1) AS count,
@@ -57,7 +57,7 @@
DATE_FORMAT(create_time, '%Y-%m-%d')
</select>
<!-- 获取IP访问统计数据 -->
<!-- 获取IP日统计列表-->
<select id="getIpCounts" resultType="com.youlai.system.model.bo.VisitCount">
SELECT
COUNT(DISTINCT ip) AS count,
@@ -69,4 +69,45 @@
GROUP BY
DATE_FORMAT(create_time, '%Y-%m-%d')
</select>
<!-- 获取访问量(PV)统计数据 -->
<select id="getPvStats" resultType="com.youlai.system.model.vo.VisitStatsVO">
SELECT
COUNT(CASE WHEN DATE(create_time) = CURDATE() THEN 1 END) AS todayCount,
COUNT(*) AS totalCount,
ROUND(
CASE
WHEN COUNT(CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY THEN 1 END) = 0 THEN 0
ELSE
(COUNT(CASE WHEN DATE(create_time) = CURDATE() THEN 1 END) -
COUNT(CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY THEN 1 END)) /
COUNT(CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY THEN 1 END)
END,
2) AS growthRate
FROM
sys_log
WHERE
is_deleted = 0
</select>
<!-- 获取IP统计数据 -->
<select id="getIpStats" resultType="com.youlai.system.model.vo.VisitStatsVO">
SELECT
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() THEN ip END) AS todayCount,
COUNT(DISTINCT ip) AS totalCount,
ROUND(
CASE
WHEN COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY THEN ip END) = 0 THEN 0
ELSE
(COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() THEN ip END) -
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY THEN ip END)) /
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY THEN ip END)
END,
2) AS growthRate
FROM
sys_log
WHERE
is_deleted = 0
</select>
</mapper>