智慧保安后台管理-外网项目备份
zhongrj
2023-09-17 8853292babb2ad94de4a3207966f1e83b767cd2d
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,186 @@
        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 14 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 14 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>
    <!--企业登录记录导出-->
    <select id="exportLoginRecord" resultType="org.springblade.modules.loginrecord.excel.LoginRecordExcel">
        select * from (
        SELECT
        a.enterpriseName deptName,
        case when a.stats=0 then '自招保安单位'
        when a.stats=2 then '本市保安公司'
        when a.stats=4 then '分公司'
        when a.stats=1 then '保安培训学校'
        else "其他" end as 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
        and type = 1
        <if test="loginRecord.startTime!=null and loginRecord.startTime!='' and loginRecord.startTime!='undefined'">
            and date(create_time) &gt;= #{loginRecord.startTime}
        </if>
        <if test="loginRecord.endTime!=null and loginRecord.endTime!='' and loginRecord.endTime!='undefined'">
            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>
        <if test="loginRecord.stats!=null and loginRecord.stats!=''">
            and a.stats = #{loginRecord.stats}
        </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>