SceneLinkageMapper.xml 2.68 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.SceneLinkageMapper">
    <resultMap id="sceneLinkageMap" type="org.thingsboard.server.common.data.yunteng.dto.scene.SceneLinkageDTO">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="organizationId" column="organization_id"/>
        <result property="status" column="status"/>
        <result property="description" column="description"/>
        <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"/>
        <result property="creatorName" column="creator_name"/>
        <collection property="triggers" select="org.thingsboard.server.dao.yunteng.mapper.TriggerMapper.listBySceneId" column="id" />
        <collection property="doConditions" select="org.thingsboard.server.dao.yunteng.mapper.DoConditionMapper.listBySceneId" column="id" />
        <collection property="doActions" select="org.thingsboard.server.dao.yunteng.mapper.DoActionMapper.listBySceneId" column="id" />

    </resultMap>
    <sql id="columns">
        s.id,s.name,s.organization_id,s.status,s.description,s.tenant_id,s.updater,s.update_time,s.create_time,s.creator
    </sql>
    <select id="getScenePage" resultMap="sceneLinkageMap">
        SELECT
        <include refid="columns"/>,su.real_name creator_name
        FROM tk_scene_linkage s
        LEFT JOIN sys_user su ON su.id = s.creator
        LEFT JOIN tk_organization io ON io.id = s.organization_id
        <where>
            <if test="queryMap.tenantId !=null and queryMap.tenantId !=''">
                AND s.tenant_id = #{queryMap.tenantId}
            </if>
            <if test="queryMap.name !=null and queryMap.name !=''">
                AND s.name LIKE concat('%',#{queryMap.name}::TEXT,'%')
            </if>
            <if test="queryMap.status !=null">
                AND s.status = #{queryMap.status}
            </if>
            <if test="queryMap.organizationIds !=null">
                AND s.organization_id IN
                <foreach collection="queryMap.organizationIds" item="organizationId" open="(" separator="," close=")">
                    #{organizationId}
                </foreach>
            </if>
            <if test="queryMap.currentUser !=null">
                AND s.creator = #{queryMap.currentUser}
            </if>
        </where>
    </select>

</mapper>