OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/resources/mybatis/query-template/companyField-template.xml
@@ -5,20 +5,49 @@
    <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition">
        SELECT
        c.id as id,
        c.name as name,
        c.tel as tel,
        c.email as email,
        c.memo as memo
        cf.id as id,
        cf.name as name,
        cf.manager as manager,
        cf.tel as tel,
        cf.email as email,
        cf.url as url,
        cf.ip_start as ipStart,
        cf.ip_end as ipEnd,
        concat(cf.ip_start, "~", cf.ip_end) AS ipRange,
        cf.memo as memo,
        cf.isp_id as ispId,
        cf.hosting_id as hostingId,
        cf.company_type_id as companyTypeId,
        cf.parent_sector_id as parentSectorId,
        cf.child_sector_id as childSectorId,
        cf.region_id as regionId,
        cf.status_id as statusId,
        cf.status_name as statusName,
        sf.name AS ispName,
        hf.name AS hostingName
        FROM
        company c
        company_field cf
        LEFT OUTER JOIN isp_field sf ON cf.isp_id = sf.id
        LEFT OUTER JOIN hosting_field hf ON cf.hosting_id = hf.id
        WHERE 1=1
        <if test="name != '' and name != null">
            AND c.name like CONCAT('%',#{name},'%')
            AND cf.name like CONCAT('%',#{name},'%')
        </if>
        <if test="id != '' and id != null">
            AND c.id like CONCAT('%',#{id},'%')
            AND cf.id like CONCAT('%',#{id},'%')
        </if>
        <choose>
            <when test="url != null and url.size != 0">
                AND
                <foreach collection="url" item="item" index="index" separator="or" open="(" close=")">
                    cf.url LIKE CONCAT('%',#{item},'%')
                </foreach>
            </when>
        </choose>
        <if test="ip != '' and ip != null">
            AND INET_ATON(cf.ip_start) <![CDATA[ <= ]]> #{ip} AND INET_ATON(cf.ip_end) >= #{ip}
        </if>
        ORDER BY cf.register_date DESC
        <if test="pageSize != '' and pageSize != null">
            limit #{pageSize} offset #{page};
        </if>
@@ -26,15 +55,91 @@
    <select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition">
        SELECT
        count(c.id)
        count(DISTINCT cf.id)
        FROM
        company c
        company_field cf
        WHERE 1=1
        <if test="name != '' and name != null">
            AND c.name like CONCAT('%',#{name},'%')
            AND cf.name like CONCAT('%',#{name},'%')
        </if>
        <if test="id != '' and id != null">
            AND c.id like CONCAT('%',#{id},'%')
            AND cf.id like CONCAT('%',#{id},'%')
        </if>
    </select>
    <select id="findByUrls" resultType="kr.wisestone.owl.domain.CompanyField" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition">
        SELECT
        cf.id as id,
        cf.name as name,
        cf.email as email,
        cf.url as url
        FROM
        company_field cf
        WHERE 1=1
        <choose>
            <when test="url != null and url.size != 0">
                AND
                <foreach collection="url" item="item" index="index" separator="or" open="(" close=")">
                    cf.url LIKE CONCAT('%',#{item},'%')
                </foreach>
            </when>
        </choose>
    </select>
    <select id="findByUrlsAndIdNot" resultType="kr.wisestone.owl.domain.CompanyField" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition">
        SELECT
        cf.id as id,
        cf.name as name,
        cf.email as email,
        cf.url as url
        FROM
        company_field cf
        WHERE 1=1
        <choose>
            <when test="url != null and url.size != 0">
                AND
                <foreach collection="url" item="item" index="index" separator="or" open="(" close=")">
                    cf.url LIKE CONCAT('%',#{item},'%')
                </foreach>
            </when>
        </choose>
        <if test="id != '' and id != null">
            AND cf.id not like CONCAT('%',#{id},'%')
        </if>
    </select>
    <select id="findByIps" resultType="kr.wisestone.owl.domain.CompanyField" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition">
        SELECT
        cf.id as id,
        cf.name as name,
        cf.email as email,
        cf.url as url
        FROM
        company_field cf
        WHERE 1=1
        <choose>
            <when test="ipStart != null and ipStart != '' and ipEnd != null and ipEnd != ''">
                AND INET_ATON(cf.ip_start) BETWEEN #{ipStart} AND #{ipEnd} OR INET_ATON(cf.ip_end) BETWEEN #{ipStart} AND #{ipEnd}
            </when>
        </choose>
    </select>
    <select id="findByIpsAndIdNot" resultType="kr.wisestone.owl.domain.CompanyField" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition">
        SELECT
        cf.id as id,
        cf.name as name,
        cf.email as email,
        cf.url as url
        FROM
        company_field cf
        WHERE 1=1
        <choose>
            <when test="ipStart != null and ipStart != '' and ipEnd != null and ipEnd != ''">
                AND (INET_ATON(cf.ip_start) BETWEEN #{ipStart} AND #{ipEnd} OR INET_ATON(cf.ip_end) BETWEEN #{ipStart} AND #{ipEnd})
            </when>
        </choose>
        <if test="id != '' and id != null">
            AND cf.id not like CONCAT('%',#{id},'%')
        </if>
    </select>
</mapper>