TkRpcRecordMapper.xml 3.69 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.TkRpcRecordMapper">
    <resultMap type="org.thingsboard.server.common.data.yunteng.dto.TkRpcRecordDTO" id="dataMap">
        <result property="id" column="id"/>
        <result property="deviceName" column="device_name"/>
        <result property="tbDeviceId" column="tb_device_id"/>
        <result property="deviceId" column="device_id"/>
        <result property="deviceType" column="device_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler" />
        <result property="deviceSn" column="sn"/>
        <result property="createTime" column="create_time"/>
        <result property="expirationTime" column="expiration_time"/>
        <result property="request" column="request"
                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
        <result property="response" column="response"
                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
        <result property="additionalInfo" column="additional_info"
                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
        <result property="status" column="status" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
        <result property="organizationId" column="organization_id"/>
        <result property="organizationName" column="organization_name"/>
        <result column="tenant_name" property="tenantName"/>
        <result column="tenant_id" property="tenantId"/>
    </resultMap>



    <sql id="basicColumns">
        base.id,base.created_time AS create_time,base.expiration_time,base.request,base.response,base.additional_info,base.status
    </sql>

    <sql id="detailColumns">
        <include refid="basicColumns"/>
        ,org.id AS organization_id,org.name AS organization_name
        ,dev.name AS device_name,dev.tb_device_id,dev.device_type,dev.sn,dev.tenant_id,dev.id AS device_id
        ,ten.title AS tenant_name
    </sql>
    <select id="getPageData" resultMap="dataMap">
        SELECT  <include refid="detailColumns"/>
        FROM rpc base
        LEFT JOIN tk_device dev ON base.device_id =dev.tb_device_id::uuid
        LEFT JOIN tk_organization org ON dev.organization_id = org.id
        LEFT JOIN tenant ten ON base.tenant_id = ten.id
        <where>
            <if test="tenantId !=null and tenantId !=''">
                AND base.tenant_id = #{tenantId}::uuid
            </if>
            <if test="tbDeviceId !=null ">
                AND base.device_id = #{tbDeviceId}::uuid
            </if>
            <if test="endTime !=null and startTime !=null">
                AND base.created_time &gt;= #{startTime} AND base.created_time &lt; #{endTime}
            </if>
            <if test="name !=null and name !=''">
                AND  (
                        dev.name LIKE concat('%',#{name}::TEXT,'%')
                    OR
                        org.name LIKE concat('%',#{name}::TEXT,'%')
                    OR
                        ten.title LIKE concat('%',#{name}::TEXT,'%')
                    OR
                    base.request LIKE concat('%',#{name}::TEXT,'%')
                )
            </if>
            <if test="status !=null">
                AND base.status = #{status}
            </if>
            <if test="organization !=null">
                AND dev.organization_id IN
                <foreach collection="organization" item="organizationId" open="(" separator="," close=")">
                    #{organizationId}
                </foreach>
            </if>
        </where>
    </select>






</mapper>