SysUserOnlineMapper.xml 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ruoyi.system.mapper.SysUserOnlineMapper">
  6. <resultMap type="SysUserOnline" id="SysUserOnlineResult">
  7. <id property="sessionId" column="sessionId" />
  8. <result property="loginName" column="login_name" />
  9. <result property="deptName" column="dept_name" />
  10. <result property="ipaddr" column="ipaddr" />
  11. <result property="loginLocation" column="login_location" />
  12. <result property="browser" column="browser" />
  13. <result property="os" column="os" />
  14. <result property="status" column="status" />
  15. <result property="startTimestamp" column="start_timestamp" />
  16. <result property="lastAccessTime" column="last_access_time" />
  17. <result property="expireTime" column="expire_time" />
  18. </resultMap>
  19. <sql id="selectOnlineVo">
  20. select sessionId, login_name, dept_name, ipaddr, login_location, browser, os, status, start_timestamp, last_access_time, expire_time
  21. from sys_user_online
  22. </sql>
  23. <select id="selectOnlineById" parameterType="String" resultMap="SysUserOnlineResult">
  24. <include refid="selectOnlineVo"/>
  25. where sessionId = #{sessionId}
  26. </select>
  27. <insert id="saveOnline" parameterType="SysUserOnline">
  28. merge into sys_user_online a
  29. using (select count(1) co
  30. from sys_user_online
  31. where sessionid = #{sessionId}) b
  32. on (b.co <![CDATA[ <> ]]> 0)
  33. when matched then
  34. update
  35. set login_name = #{loginName},
  36. dept_name = #{deptName},
  37. ipaddr = #{ipaddr},
  38. login_location = #{loginLocation},
  39. browser = #{browser},
  40. os = #{os},
  41. status = #{status},
  42. start_timestamp = #{startTimestamp},
  43. last_access_time = #{lastAccessTime},
  44. expire_time = #{expireTime}
  45. where sessionid = #{sessionId}
  46. when not matched then
  47. insert
  48. values
  49. (#{sessionId}, #{loginName}, #{deptName}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{status}, #{startTimestamp}, #{lastAccessTime}, #{expireTime})
  50. </insert>
  51. <delete id="deleteOnlineById" parameterType="String">
  52. delete from sys_user_online where sessionId = #{sessionId}
  53. </delete>
  54. <select id="selectUserOnlineList" parameterType="SysUserOnline" resultMap="SysUserOnlineResult">
  55. <include refid="selectOnlineVo"/>
  56. <where>
  57. <if test="ipaddr != null and ipaddr != ''">
  58. AND ipaddr like concat(concat('%',#{ipaddr}),'%')
  59. </if>
  60. <if test="loginName != null and loginName != ''">
  61. AND login_name like concat(concat('%',#{loginName}),'%')
  62. </if>
  63. </where>
  64. </select>
  65. <select id="selectOnlineByExpired" parameterType="String" resultMap="SysUserOnlineResult">
  66. <include refid="selectOnlineVo"/> o
  67. WHERE o.last_access_time <![CDATA[ <= ]]> to_date(#{lastAccessTime},'yyyy-MM-dd HH24:mi:ss') ORDER BY o.last_access_time ASC
  68. </select>
  69. </mapper>