TkDataViewMapper.xml 3.47 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.TkDataViewMapper">
    <resultMap id="dataViewMap" type="org.thingsboard.server.common.data.yunteng.dto.TkDataViewDTO">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="state" column="state"/>
        <result property="organizationId" column="organization_id"/>
        <result property="remark" column="remark"/>
        <result property="updateTime" column="update_time"/>
        <result property="createTime" column="create_time"/>
        <result property="creator" column="creator"/>
        <result property="tenantId" column="tenant_id"/>
        <result property="updater" column="updater"/>
        <result property="thumbnail" column="thumbnail"/>
        <result property="accessCredentials" column="access_credentials"/>
        <result property="viewType" column="view_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
        <association property="organizationDTO"
                     javaType="org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO">
            <result property="name" column="organization_name"/>
        </association>
    </resultMap>

    <resultMap id="dataViewInfoMap"
               type="org.thingsboard.server.common.data.yunteng.dto.request.TkDataViewContentInfoDTO">
        <result property="thumbnail" column="thumbnail"/>
        <result property="dataViewId" column="id"/>
        <result property="dataViewName" column="name"/>
        <result property="state" column="state"/>
        <result property="organizationId" column="organization_id"/>
        <collection property="dataViewContent"
                    ofType="org.thingsboard.server.common.data.yunteng.dto.TkDataViewContentDTO">
            <result property="id" column="content_id"/>
            <result property="content" column="content"/>
        </collection>
    </resultMap>

    <sql id="columns">
        a.id,a.name, a.remark,a.state,a.tenant_id,a.organization_id,a.thumbnail,a.updater,a.update_time,a.create_time,
        a.creator,io.name AS organization_name,a.access_credentials,a.view_type
    </sql>
    <select id="getDataViewPage" resultMap="dataViewMap">
        SELECT
        <include refid="columns"/>
        FROM tk_data_view a
        LEFT JOIN tk_organization io ON io.id = a.organization_id
        <where>
            <if test="queryMap.tenantId !=null and queryMap.tenantId !=''">
                AND a.tenant_id = #{queryMap.tenantId}
            </if>
            <if test="queryMap.name !=null and queryMap.name !=''">
                AND a.name LIKE concat('%',#{queryMap.name}::TEXT,'%')
            </if>
            <if test="queryMap.organizationIds !=null">
                AND a.organization_id IN
                <foreach collection="queryMap.organizationIds" item="organizationId" open="(" separator="," close=")">
                    #{organizationId}
                </foreach>
            </if>
        </where>
    </select>

    <select id="getDataViewInfoById" resultMap="dataViewInfoMap">
        SELECT icc.id,icc.thumbnail,icc.name,icc.state,icc.organization_id,icc.thumbnail,icct.id AS content_id,icct.content FROM tk_data_view icc LEFT JOIN
        tk_data_view_content icct ON icc.id = icct.view_id
        WHERE icc.id = #{id} AND icc.tenant_id = #{tenantId}
    </select>
</mapper>