合并
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
<?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.bao.dating.mapper.UserDeviceMapper">
|
||||
|
||||
<!--插入设备信息-->
|
||||
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO user_device (
|
||||
user_id, device_id, device_type, device_name, device_brand,
|
||||
os_version, app_version, ip_address, location, token,
|
||||
status, is_current, last_active_at, login_at, created_at
|
||||
) VALUES (
|
||||
#{userId}, #{deviceId}, #{deviceType}, #{deviceName}, #{deviceBrand},
|
||||
#{osVersion}, #{appVersion}, #{ipAddress}, #{location}, #{token},
|
||||
#{status}, #{isCurrent}, #{lastActiveAt}, #{loginAt}, NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!--根据设备ID查询-->
|
||||
<select id="selectByDeviceId" resultType="com.bao.dating.pojo.entity.UserDevice">
|
||||
SELECT * FROM user_device WHERE device_id = #{deviceId}
|
||||
</select>
|
||||
|
||||
<!--根据用户ID查询所有设备-->
|
||||
<select id="selectByUserId" resultType="com.bao.dating.pojo.vo.UserDeviceVO">
|
||||
SELECT
|
||||
id, device_id, device_type, device_name, device_brand,
|
||||
os_version, app_version, ip_address, location,
|
||||
is_current = 1 as is_current,
|
||||
status = 1 as is_online,
|
||||
last_active_at, login_at
|
||||
FROM user_device
|
||||
WHERE user_id = #{userId}
|
||||
ORDER BY is_current DESC, last_active_at DESC
|
||||
</select>
|
||||
|
||||
<!--更新设备状态-->
|
||||
<update id="updateStatus">
|
||||
UPDATE user_device SET status = #{status} WHERE device_id = #{deviceId}
|
||||
</update>
|
||||
|
||||
<!--更新最后活跃时间-->
|
||||
<update id="updateLastActiveAt">
|
||||
UPDATE user_device SET last_active_at = NOW() WHERE device_id = #{deviceId}
|
||||
</update>
|
||||
|
||||
<!--清除用户当前设备标记-->
|
||||
<update id="clearCurrentDevice">
|
||||
UPDATE user_device SET is_current = 0 WHERE user_id = #{userId}
|
||||
</update>
|
||||
|
||||
<!--设置当前设备-->
|
||||
<update id="setCurrentDevice">
|
||||
UPDATE user_device SET is_current = 1 WHERE device_id = #{deviceId}
|
||||
</update>
|
||||
|
||||
<!--根据Token查询-->
|
||||
<select id="selectByToken" resultType="com.bao.dating.pojo.entity.UserDevice">
|
||||
SELECT * FROM user_device WHERE token = #{token}
|
||||
</select>
|
||||
|
||||
<!--更新设备信息-->
|
||||
<update id="update" parameterType="com.bao.dating.pojo.entity.UserDevice">
|
||||
UPDATE user_device SET
|
||||
device_name = #{deviceName},
|
||||
device_brand = #{deviceBrand},
|
||||
os_version = #{osVersion},
|
||||
app_version = #{appVersion},
|
||||
ip_address = #{ipAddress},
|
||||
location = #{location},
|
||||
last_active_at = NOW()
|
||||
WHERE device_id = #{deviceId}
|
||||
</update>
|
||||
|
||||
<!--删除设备-->
|
||||
<delete id="deleteByDeviceId">
|
||||
DELETE FROM user_device WHERE device_id = #{deviceId}
|
||||
</delete>
|
||||
|
||||
<!--删除用户所有设备-->
|
||||
<delete id="deleteByUserId">
|
||||
DELETE FROM user_device WHERE user_id = #{userId}
|
||||
</delete>
|
||||
|
||||
</mapper>
|
||||
22
src/main/resources/db/user_device.sql
Normal file
22
src/main/resources/db/user_device.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
-- 用户设备登录记录表
|
||||
CREATE TABLE IF NOT EXISTS `user_device` (
|
||||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` BIGINT NOT NULL COMMENT '用户ID',
|
||||
`device_id` VARCHAR(64) NOT NULL COMMENT '设备唯一标识',
|
||||
`device_type` TINYINT DEFAULT 4 COMMENT '设备类型:1-Android, 2-iOS, 3-Web, 4-其他',
|
||||
`device_name` VARCHAR(128) DEFAULT NULL COMMENT '设备名称',
|
||||
`device_brand` VARCHAR(64) DEFAULT NULL COMMENT '设备品牌',
|
||||
`os_version` VARCHAR(32) DEFAULT NULL COMMENT '操作系统版本',
|
||||
`app_version` VARCHAR(32) DEFAULT NULL COMMENT '应用版本',
|
||||
`ip_address` VARCHAR(64) DEFAULT NULL COMMENT 'IP地址',
|
||||
`location` VARCHAR(128) DEFAULT NULL COMMENT '设备位置',
|
||||
`token` VARCHAR(512) DEFAULT NULL COMMENT '登录Token',
|
||||
`status` TINYINT DEFAULT 1 COMMENT '在线状态:1-在线, 0-离线',
|
||||
`is_current` TINYINT DEFAULT 0 COMMENT '是否当前设备:1-是, 0-否',
|
||||
`last_active_at` DATETIME DEFAULT NULL COMMENT '最后活跃时间',
|
||||
`login_at` DATETIME DEFAULT NULL COMMENT '登录时间',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
UNIQUE KEY `uk_device_id` (`device_id`),
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_token` (`token`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户登录设备记录表';
|
||||
Reference in New Issue
Block a user