DeviceMapper.xml
3.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?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="org.thingsboard.server.dao.yunteng.mapper.DeviceMapper">
<resultMap type="org.thingsboard.server.common.data.yunteng.dto.DeviceDTO" id="deviceMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="deviceInfo" column="device_info"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
<result property="profileId" column="profile_id"/>
<result property="activeTime" column="active_time"/>
<result property="deviceType" column="device_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
<result property="deviceState" column="device_state" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
<result property="alarmStatus" column="alarm_status"/>
<result property="deviceToken" column="device_token"/>
<result property="tenantId" column="tenant_id"/>
<result property="tbDeviceId" column="tb_device_id"/>
<result property="label" column="label"/>
<result property="lastConnectTime" column="last_connect_time"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="creator" column="creator"/>
<result property="updater" column="updater"/>
<result property="organizationId" column="organization_id"/>
<association property="deviceProfile" javaType="org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO">
<result property="name" column="profile_name"/>
</association>
<association property="organizationDTO" javaType="org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO">
<result property="name" column="organization_name"/>
</association>
</resultMap>
<sql id="columns">
ifd.id,ifd.name,ifd.device_info,ifd.profile_id,ifd.active_time,ifd.device_token,ifd.tenant_id
,ifd.tb_device_id,ifd.label,ifd.last_connect_time,ifd.device_type,ifd.device_state,ifd.create_time,ifd.update_time,ifd.creator,
ifd.updater,ifd.organization_id,ifd,alarm_status
</sql>
<select id="getDevicePage" resultMap="deviceMap">
SELECT
<include refid="columns"/>,ifdp.name AS profile_name,io.name AS organization_name
FROM iotfs_device ifd
LEFT JOIN iotfs_device_profile ifdp ON ifd.profile_id = ifdp.id
LEFT JOIN iotfs_organization io ON io.id = ifd.organization_id
<where>
<if test="queryMap.tenantId !=null and queryMap.tenantId !=''">
AND ifd.tenant_id = #{queryMap.tenantId}
</if>
<if test="queryMap.profileId !=null and queryMap.profileId !=''">
AND ifd.profile_id = #{queryMap.profileId}
</if>
<if test="queryMap.name !=null and queryMap.name !=''">
AND ifd.name LIKE concat('%',#{queryMap.name}::TEXT,'%')
</if>
<if test="queryMap.deviceType !=null and queryMap.deviceType !=''">
AND ifd.device_type = #{queryMap.deviceType}
</if>
<if test="queryMap.deviceState !=null and queryMap.deviceState !=''">
AND ifd.device_state = #{queryMap.deviceState}
</if>
<if test="queryMap.alarmStatus !=null">
AND ifd.alarm_status = #{queryMap.alarmStatus}
</if>
<if test="queryMap.organizationIds !=null">
AND ifd.organization_id IN
<foreach collection="queryMap.organizationIds" item="organizationId" open="(" separator="," close=")">
#{organizationId}
</foreach>
</if>
</where>
</select>
</mapper>