<?xml version="1.0" encoding="UTF-8" ?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one or more
  ~ contributor license agreements.  See the NOTICE file distributed with
  ~ this work for additional information regarding copyright ownership.
  ~ The ASF licenses this file to You under the Apache License, Version 2.0
  ~ (the "License"); you may not use this file except in compliance with
  ~ the License.  You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="org.apache.dolphinscheduler.dao.mapper.TenantMapper">
    <sql id="baseSql">
        id, tenant_code, description, queue_id, create_time, update_time
    </sql>
    <sql id="baseSqlV2">
        ${alias}.id, ${alias}.tenant_code, ${alias}.description, ${alias}.queue_id, ${alias}.create_time, ${alias}.update_time
    </sql>
    <select id="queryById" resultType="org.apache.dolphinscheduler.dao.entity.Tenant">
        SELECT
        <include refid="baseSqlV2">
            <property name="alias" value="t"/>
        </include>
        ,
        q.queue_name,q.queue
        FROM t_ds_tenant t,t_ds_queue q
        WHERE t.queue_id = q.id
        and t.id = #{tenantId}
    </select>
    <select id="queryByTenantCode" resultType="org.apache.dolphinscheduler.dao.entity.Tenant">
        select
        <include refid="baseSql"/>
        from t_ds_tenant
        where tenant_code = #{tenantCode}
    </select>
    <select id="queryTenantPaging" resultType="org.apache.dolphinscheduler.dao.entity.Tenant">
        SELECT
        <include refid="baseSqlV2">
            <property name="alias" value="t"/>
        </include>
        , q.queue_name
        FROM t_ds_tenant t,t_ds_queue q
        WHERE t.queue_id = q.id
        <if test="searchVal != null and searchVal != ''">
            and t.tenant_code like concat('%', #{searchVal}, '%')
        </if>
        order by t.update_time desc
    </select>
    <select id="existTenant" resultType="java.lang.Boolean">
        select 1
        from t_ds_tenant
        where tenant_code = #{tenantCode} limit 1
    </select>
</mapper>
