OWL ITS + 탐지시스템(인터넷 진흥원)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
<mapper namespace="kr.wisestone.owl.mapper.CompanyFieldMapper">
 
    <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition">
        SELECT
        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_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 != null and name != ''">
            AND cf.name like CONCAT('%',#{name},'%')
        </if>
        <if test="id != null and id != ''">
            AND cf.id like CONCAT('%',#{id},'%')
        </if>
        <if test="url != null and url != ''">
            AND cf.url LIKE CONCAT('%',#{url},'%')
        </if>
        <choose>
            <when test="urls != null and urls.size != 0">
                AND
                <foreach collection="urls" item="item" index="index" separator="or" open="(" close=")">
                    cf.url LIKE CONCAT('%',#{item},'%')
                </foreach>
            </when>
        </choose>
        <if test="ip != null and ip != ''">
            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>
    </select>
 
    <select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition">
        SELECT
        count(DISTINCT cf.id)
        FROM
        company_field cf
        WHERE 1=1
        <if test="name != '' and name != null">
            AND cf.name like CONCAT('%',#{name},'%')
        </if>
        <if test="id != '' and id != null">
            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
        <if test="url != null and url != ''">
            AND cf.url LIKE CONCAT('%',#{url},'%')
        </if>
        <choose>
            <when test="urls != null and urls.size != 0">
                AND
                <foreach collection="urls" 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,
        cf.ip_start AS ipStart,
        cf.ip_end AS ipEnd
        FROM
        company_field cf
        WHERE 1=1
        <if test="url != null and url != ''">
            AND cf.url LIKE CONCAT('%',#{url},'%')
        </if>
        <choose>
            <when test="urls != null and urls.size != 0">
                AND
                <foreach collection="urls" 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,
        cf.ip_start AS ipStart,
        cf.ip_end AS ipEnd
        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}
                OR #{ipStart} BETWEEN INET_ATON(cf.ip_start) AND INET_ATON(cf.ip_end) OR #{ipEnd} BETWEEN INET_ATON(cf.ip_start) AND INET_ATON(cf.ip_end))
            </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,
        cf.ip_start AS ipStart,
        cf.ip_end AS ipEnd
        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}
                OR #{ipStart} BETWEEN INET_ATON(cf.ip_start) AND INET_ATON(cf.ip_end) OR #{ipEnd} BETWEEN INET_ATON(cf.ip_start) AND INET_ATON(cf.ip_end))
            </when>
        </choose>
        <if test="id != '' and id != null">
            AND cf.id not like CONCAT('%',#{id},'%')
        </if>
    </select>
</mapper>