OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-24 3b8096758ba426be96c63248526884874359cac9
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
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
<mapper namespace="kr.wisestone.owl.mapper.UserWorkspaceMapper">
 
    <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.UserWorkspaceCondition">
        SELECT
        DISTINCT uw.id as id,
        u.id as userId,
        u.name as userName,
        u.account as account,
        u.level_id as levelId,
        uw.manager_yn as managerYn,
        CASE WHEN uw.use_yn = 'Y' THEN 'true' ELSE 'false' END as useYn
        FROM
        user_workspace uw
        INNER JOIN user u on uw.user_id = u.id
        INNER JOIN workspace w on uw.workspace_id = w.id
        WHERE 1=1
        AND w.id = #{workspaceId}
        <if test="name != '' and name != null">
            AND u.name like CONCAT('%',#{name},'%')
        </if>
 
        <if test="account != '' and account != null">
            AND u.account like CONCAT('%',#{account},'%')
        </if>
 
        <choose>
            <when test="statuses.size != 0">
                AND uw.use_yn IN
                <foreach collection="statuses" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
 
        <choose>
            <when test="levelIds.size != 0">
                AND u.level_id IN
                <foreach collection="levelIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
        limit #{pageSize} offset #{page};
    </select>
 
    <select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.UserWorkspaceCondition">
        SELECT
        count(DISTINCT uw.id),
        u.name as name,
        u.account as account,
        uw.use_yn as useYn
        FROM
        user_workspace uw
        INNER JOIN user u on uw.user_id = u.id
        INNER JOIN workspace w on uw.workspace_id = w.id
        WHERE 1=1
        AND w.id = #{workspaceId}
        <if test="name != '' and name != null">
            AND u.name like CONCAT('%',#{name},'%')
        </if>
 
        <if test="account != '' and account != null">
            AND u.account like CONCAT('%',#{account},'%')
        </if>
 
        <choose>
            <when test="statuses.size != 0">
                AND uw.use_yn IN
                <foreach collection="statuses" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
    </select>
 
</mapper>