OnlineMapper.xml 3.35 KB
<?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="com.huaheng.pc.monitor.online.mapper.UserOnlineMapper">

    <resultMap type="UserOnline" id="UserOnlineResult">
        <id property="sessionId" column="sessionId"/>
        <result property="loginName" column="loginName"/>
        <result property="deptName" column="deptName"/>
        <result property="ipaddr" column="ipaddr"/>
        <result property="longinLocation" column="loginLocation"/>
        <result property="browser" column="browser"/>
        <result property="os" column="os"/>
        <result property="status" column="status"/>
        <result property="startTimestamp" column="startTimestsamp"/>
        <result property="lastAccessTime" column="lastAccessTime"/>
        <result property="expireTime" column="expireTime"/>
        <association property="session" javaType="OnlineSession" resultMap="OnlineSessionResult"/>
    </resultMap>

    <resultMap type="OnlineSession" id="OnlineSessionResult">
        <result property="host" column="ipaddr"/>
        <result property="browser" column="browser"/>
        <result property="os" column="os"/>
        <result property="status" column="status"/>
    </resultMap>

    <sql id="selectOnlineVo">
        select sessionId,
               loginName,
               deptName,
               ipaddr,
               loginLocation,
               browser,
               os,
               status,
               status,
               startTimestsamp,
               lastAccessTime,
               expireTime
        from sys_user_online
    </sql>

    <select id="selectOnlineById" parameterType="String" resultMap="UserOnlineResult">
        <include refid="selectOnlineVo"/>
        where sessionid = #{sessionid}
    </select>

    <insert id="saveOnline" parameterType="UserOnline">
        replace into sys_user_online(sessionId, loginName, deptName, ipaddr, loginLocation, browser, os, status,
                                     startTimestsamp, lastAccessTime, expireTime)
        values (#{sessionId}, #{loginName}, #{deptName}, #{ipaddr}, #{longinLocation}, #{browser}, #{os}, #{status},
                #{startTimestamp}, #{lastAccessTime}, #{expireTime})
    </insert>

    <delete id="deleteOnlineById" parameterType="String">
        delete
        from sys_user_online
        where sessionId = #{sessionId}
    </delete>

    <select id="selectUserOnlineList" parameterType="UserOnline" resultMap="UserOnlineResult">
        <include refid="selectOnlineVo"/>
        <where>
            <if test="ipaddr != null and ipaddr != ''">
                AND ipaddr like concat('%', #{ipaddr}, '%')
            </if>
            <if test="loginName != null and loginName != ''">
                AND loginName like concat('%', #{loginName}, '%')
            </if>
        </where>
    </select>

    <select id="selectOnlineByExpired" parameterType="String" resultMap="UserOnlineResult">
        <include refid="selectOnlineVo"/>
        o
        WHERE o.lastAccessTime <![CDATA[ <= ]]> #{lastAccessTime} ORDER BY o.lastAccessTime ASC
    </select>
    <select id="getByLoginName" resultType="com.huaheng.pc.monitor.online.domain.UserOnline">
        <include refid="selectOnlineVo"/>
        o
        where o.loginName = #{loginName}
    </select>

</mapper>