SysLogMapper.xml 4.54 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.SysLogMapper">
    <resultMap id="logDto" type="org.thingsboard.server.common.data.yunteng.dto.SysLogDTO">
        <result property="id" column="id"/>
        <result property="entityType" column="entity_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>

        <result property="entityId" column="entity_id"  typeHandler="org.thingsboard.server.dao.yunteng.mapper.UUIDTypeHandler"/>
        <result property="entityName" column="entity_name" />
        <result property="tenantId" column="tenant_id" typeHandler="org.thingsboard.server.dao.yunteng.mapper.UUIDTypeHandler"/>
        <result property="tenantName" column="tenant_name"/>
        <result property="customerId" column="customer_id" typeHandler="org.thingsboard.server.dao.yunteng.mapper.UUIDTypeHandler"/>
        <result property="customerName" column="customer_name"/>
        <result property="userId" column="user_id" typeHandler="org.thingsboard.server.dao.yunteng.mapper.UUIDTypeHandler"/>
        <result property="userName" column="user_name" />

        <result property="actionData" column="action_data" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
        <result property="actionType" column="action_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
        <result property="actionStatus" column="action_status" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
        <result property="actionFailureDetails" column="action_failure_details"/>
        <result property="createdTime" column="created_time"/>

    </resultMap>

    <sql id="baseColumn">
        base.id, base.tenant_id, base.created_time, base.customer_id, base.entity_type, base.entity_id, base.entity_name, base.user_id, base.user_name, base.action_type, base.action_status
        ,ten.title tenant_name,cus.title customer_name
    </sql>
    <sql id="detailColumn">
        <include refid="baseColumn"></include>
        , base.action_data,base.action_failure_details
    </sql>

    <select id="getPageDatasMatched" resultMap="logDto">
        SELECT  <include refid="baseColumn"/>
        FROM audit_log base
        LEFT JOIN tenant ten ON base.tenant_id = ten.id
        LEFT JOIN customer cus ON base.customer_id = cus.id
        <where>
            base.entity_type = #{entityType}
            <if test="tenantId !=null and tenantId !=''">
                AND base.tenant_id = #{tenantId}::uuid
            </if>
            <if test="customerId !=null ">
                AND base.customer_id = #{customerId}::uuid
            </if>
            <if test="startTime !=null">
                AND base.created_time >= #{startTime}
            </if>
            <if test="endTime !=null">
                AND base.created_time &lt;  #{endTime}
            </if>
            <if test="actionType !=null">
                AND base.action_type =  #{actionType}
            </if>
        </where>
    </select>


    <select id="getPageDatasNot" resultMap="logDto">
        SELECT  <include refid="baseColumn"/>
        FROM audit_log base
        LEFT JOIN tenant ten ON base.tenant_id = ten.id
        LEFT JOIN customer cus ON base.customer_id = cus.id
        <where>
            base.entity_type
            NOT IN
            <foreach collection="entityType" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
            <if test="entityFilter !=null">
                AND base.entity_type = #{entityFilter}
            </if>
            <if test="tenantId !=null and tenantId !=''">
                AND base.tenant_id = #{tenantId}::uuid
            </if>
            <if test="customerId !=null ">
                AND base.customer_id = #{customerId}::uuid
            </if>
            <if test="startTime !=null">
                AND base.created_time >= #{startTime}
            </if>
            <if test="endTime !=null">
                AND base.created_time &lt;  #{endTime}
            </if>
            <if test="actionType !=null">
                AND base.action_type =  #{actionType}
            </if>
        </where>
    </select>

    <select id="detailById" resultMap="logDto">
        SELECT  <include refid="detailColumn"/>
        FROM audit_log base
        LEFT JOIN tenant ten ON base.tenant_id = ten.id
        LEFT JOIN customer cus ON base.customer_id = cus.id
        <where>
            base.id = #{entityId}::uuid

        </where>
    </select>

</mapper>