lius
2023-06-08 534aec7a687ceca8120ba798ad20d80d7058ffe6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?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="org.jeecg.modules.system.mapper.SysLogMapper">
 
    <!-- 清空所有日志记录 -->
    <delete id="removeAll">
        DELETE FROM sys_log
    </delete>
    
    <!-- 获取访问总数 -->
    <select id="findTotalVisitCount" resultType="long">
        select count(1) from sys_log where log_type = 1
    </select>
 
    <!-- 获取今日访问总数 -->
    <select id="findTodayVisitCount" resultType="long">
        select count(1) from sys_log where log_type = 1 and create_time &gt;= #{dayStart} and create_time &lt; #{dayEnd}
    </select>
    
    <!-- 获取今日访问总IP数 -->
    <select id="findTodayIp" resultType="long">
        select count(distinct(ip)) from sys_log where log_type = 1 and create_time &gt;= #{dayStart} and create_time &lt; #{dayEnd}
    </select>
    
       <!-- 首页访问统计 -->
    <select id="findVisitCount" resultType="java.util.HashMap">
       <if test="dbType == 'mysql' || dbType == 'mariadb'  || dbType == 'clickhouse'|| dbType == 'sqlite'">
         select count(*) as visit
               ,count(distinct(ip)) as ip
               ,DATE_FORMAT(create_time, '%Y-%m-%d') as tian
               ,DATE_FORMAT(create_time, '%m-%d') as type
               from sys_log 
         where log_type = 1 and create_time &gt;= #{dayStart} and create_time &lt; #{dayEnd}
         group by tian,type
         order by tian asc
       </if>
       <if test="dbType == 'oracle' || dbType == 'oracle12c' || dbType == 'dm'">
        select count(*) as visit
               ,count(distinct(ip)) as ip
               ,to_char(create_time, 'yyyy-mm-dd') as tian
               ,to_char(create_time, 'mm-dd') as type
         from sys_log 
         where log_type = 1 and create_time &gt;= #{dayStart} and create_time &lt; #{dayEnd}
         group by to_char(create_time, 'yyyy-mm-dd'),to_char(create_time, 'mm-dd') 
         order by to_char(create_time, 'yyyy-mm-dd') asc
       </if>
      <if test="dbType == 'postgresql' || dbType == 'kingbasees' || dbType == 'zenith'">
       select count(*) as visit
               ,count(distinct(ip)) as ip
               ,to_char(create_time, 'yyyy-mm-dd') as tian
               ,to_char(create_time, 'mm-dd') as type
         from sys_log 
         where log_type = 1 and create_time &gt;= #{dayStart} and create_time &lt; #{dayEnd}
         group by tian,type 
         order by tian asc        
     </if>
     <if test="dbType == 'sqlserver' || dbType == 'sqlserver2005'">
        select count(*) as visit
               ,count(distinct(ip)) as ip
               ,CONVERT(varchar(100), create_time, 23) as tian
               ,RIGHT(CONVERT(varchar(100), create_time, 23),5) as type
         from sys_log 
         where log_type = 1 and create_time &gt;= #{dayStart} and create_time &lt; #{dayEnd} 
         group by CONVERT(varchar(100), create_time, 23),RIGHT(CONVERT(varchar(100), create_time, 23),5)  
         order by CONVERT(varchar(100), create_time, 23) asc      
     </if>
    </select>
 
</mapper>