From 2fe81eab1b653ffd19da3c1876e201d9a10ed6f7 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Sat, 08 Jan 2022 16:33:09 +0800
Subject: [PATCH] 1.登录记录新增修改,页面刷新token 不能算入 2.登录统计接口新增,统计明细查询接口新增

---
 src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml |  122 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 121 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml b/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml
index ed3f548..3a8bf07 100644
--- a/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml
+++ b/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml
@@ -9,7 +9,7 @@
             bd.dept_name deptName
         from
             sys_login_record slr
-        left join blade_dept bd on bd.id = slr.dept_id
+            left join blade_dept bd on bd.id = slr.dept_id
         <if test="loginRecord.deptName!=null and loginRecord.deptName!=''">
             bd.dept_name like concat('%',#{loginRecord.deptName},'%')
         </if>
@@ -19,4 +19,124 @@
         order by slr.id desc
     </select>
 
+    <!--登录记录统计-->
+    <select id="getLoginDataStatistics" resultType="java.lang.Integer">
+        SELECT
+            count( * )
+        FROM
+            (
+            SELECT
+                a.*,
+                ifnull( b.c, 0 ) num
+            FROM
+                (
+                SELECT
+                    si.*
+                FROM
+                    sys_information si
+                    LEFT JOIN blade_dept bd ON si.departmentid = bd.id
+                    left join sys_jurisdiction sj on sj.id = si.jurisdiction
+                WHERE
+                    bd.is_deleted = 0
+                    AND bd.dept_category = 1
+                    <if test="loginRecord.jurisdiction!=null and loginRecord.jurisdiction!='' and loginRecord.jurisdiction!='1372091709474910209'">
+                        and (sj.id = #{loginRecord.jurisdiction} or sj.parent_id = #{loginRecord.jurisdiction})
+                    </if>
+                ) a
+                LEFT JOIN
+                (
+                    SELECT count( * ) c, dept_id FROM `sys_login_record`
+                    where DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(create_time)
+                    GROUP BY dept_id
+                ) b ON a.departmentid = b.dept_id
+            ) c
+        WHERE
+            num > 0 UNION ALL
+            (
+            SELECT
+                count( * )
+            FROM
+                (
+                SELECT
+                    a.*,
+                    ifnull( b.c, 0 ) num
+                FROM
+                    (
+                    SELECT
+                        si.*
+                    FROM
+                        sys_information si
+                        LEFT JOIN blade_dept bd ON si.departmentid = bd.id
+                        left join sys_jurisdiction sj on sj.id = si.jurisdiction
+                    WHERE
+                        bd.is_deleted = 0
+                        AND bd.dept_category = 1
+                        <if test="loginRecord.jurisdiction!=null and loginRecord.jurisdiction!='' and loginRecord.jurisdiction!='1372091709474910209'">
+                            and (sj.id = #{loginRecord.jurisdiction} or sj.parent_id = #{loginRecord.jurisdiction})
+                        </if>
+                    ) a
+                    LEFT JOIN
+                    (
+                    SELECT count( * ) c, dept_id FROM `sys_login_record`
+                    where DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(create_time)
+                    GROUP BY dept_id
+                    ) b ON a.departmentid = b.dept_id
+                ) c
+            WHERE
+            num = 0
+            )
+    </select>
+
+    <!--自定义分页(企业登录分页记录)-->
+    <select id="getInformationLoginPage" resultType="org.springblade.modules.loginrecord.vo.LoginRecordVo">
+        select * from (
+            SELECT
+            a.enterpriseName deptName,
+            a.stats,
+            sj.dept_name jurisdictionName,
+            ifnull( b.c, 0 ) num,
+            c.create_time createTime
+            FROM
+            (
+            SELECT
+            si.*
+            FROM
+            sys_information si
+            LEFT JOIN blade_dept bd ON si.departmentid = bd.id
+            WHERE
+            bd.is_deleted = 0
+            AND bd.dept_category = 1
+            ) a
+            left join
+             (
+             SELECT count( * ) c, dept_id FROM `sys_login_record`
+             where 1=1
+             <if test="loginRecord.startTime!=null and loginRecord.startTime!=''">
+                 and date(create_time) &gt;= #{loginRecord.startTime}
+             </if>
+             <if test="loginRecord.endTime!=null and loginRecord.endTime!=''">
+                 and date(create_time) &lt;= #{loginRecord.endTime}
+             </if>
+            GROUP BY dept_id
+             ) b ON a.departmentid = b.dept_id
+            left join
+             (
+             select dept_id,max(create_time) create_time from sys_login_record GROUP BY dept_id
+             ) c on a.departmentid = c.dept_id
+             left join sys_jurisdiction sj on a.jurisdiction = sj.id
+             where 1=1
+            <if test="loginRecord.jurisdiction!=null and loginRecord.jurisdiction!='' and loginRecord.jurisdiction!='1372091709474910209'">
+                and (sj.id = #{loginRecord.jurisdiction} or sj.parent_id = #{loginRecord.jurisdiction})
+            </if>
+            <if test="loginRecord.deptName!=null and loginRecord.deptName!=''">
+                and a.enterpriseName like concat('%',#{loginRecord.deptName},'%')
+            </if>
+        ) r where 1=1
+        <if test="loginRecord.types ==1">
+            and r.num = 0
+        </if>
+        <if test="loginRecord.types ==2">
+            and r.num > 0
+        </if>
+    </select>
 </mapper>

--
Gitblit v1.9.3