TriggerMapper.xml 2.42 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="org.thingsboard.server.dao.yunteng.mapper.TriggerMapper">
    <resultMap id="triggerDTO" type="org.thingsboard.server.common.data.yunteng.dto.scene.TriggerDTO">
        <result property="id" column="id"/>
        <result property="entityId" column="entity_id"
                typeHandler="org.thingsboard.server.dao.yunteng.mapper.ListStringTypeHandler"/>
        <result property="entityType" column="entity_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
        <result property="deviceType" column="device_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
        <result property="deviceProfileId" column="device_profile_id"/>
        <result property="triggerCondition" column="trigger_condition"
                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
        <result property="triggerType" column="trigger_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
        <result property="sceneLinkageId" column="scene_linkage_id"/>
        <result property="sceneLinkageName" column="scene_linkage_name"/>
        <result property="tenantId" column="tenant_id"/>
        <result property="updater" column="updater"/>
        <result property="updateTime" column="update_time"/>
        <result property="createTime" column="create_time"/>
        <result property="creator" column="creator"/>
    </resultMap>

    <sql id="columns">
        tt.id,tt.entity_id,tt.entity_type,tt.device_type,tt.trigger_condition,tt.trigger_type,tt.scene_linkage_id,tt.tenant_id,tt.creator
        ,tt.updater,tt.create_time,tt.update_time,tt.device_profile_id
    </sql>

    <select id="listBySceneId" resultMap="triggerDTO">
        SELECT
        <include refid="columns"/>
        FROM tk_trigger tt WHERE tt.scene_linkage_id = #{sceneId}
    </select>

    <select id="listByDeviceProfileIds" resultMap="triggerDTO">
        SELECT
        <include refid="columns"/>,tsl.name as scene_linkage_name
        FROM tk_trigger tt
        LEFT JOIN tk_scene_linkage tsl ON tt.scene_linkage_id = tsl.id
        WHERE tt.tenant_id = #{tenantId} AND tt.device_profile_id IN
        <foreach collection="deviceProfileIds" item="deviceProfileId" open="(" separator="," close=")">
            #{deviceProfileId}
        </foreach>
    </select>
</mapper>