智慧保安后台管理-外网项目备份
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>