346 lines
11 KiB
XML
346 lines
11 KiB
XML
<?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="io.company.localhost.mapper.worddictyMapper">
|
|
<sql id="searchConditions">
|
|
<!-- 검색어 조건 -->
|
|
<if test="searchKeyword != null and searchKeyword != ''">
|
|
and (
|
|
REGEXP_REPLACE(w.WRDDICTTL, '\\[\\{.*?"insert":"', '') LIKE CONCAT('%', #{searchKeyword}, '%')
|
|
OR REGEXP_REPLACE(w.WRDDICCON, '\\[\\{.*?"insert":"', '') LIKE CONCAT('%', #{searchKeyword}, '%')
|
|
)
|
|
</if>
|
|
<!-- 색인표 조건 -->
|
|
<if test="indexKeyword != null and indexKeyword != ''">
|
|
<choose>
|
|
<!-- 한글 ㄱ ~ ㅎ에 대한 검색 -->
|
|
<when test='indexKeyword == "ㄱ"'>
|
|
and w.WRDDICTTL BETWEEN '가' AND '깋'
|
|
</when>
|
|
<when test='indexKeyword == "ㄴ"'>
|
|
and w.WRDDICTTL BETWEEN '나' AND '닣'
|
|
</when>
|
|
<when test='indexKeyword == "ㄷ"'>
|
|
and w.WRDDICTTL BETWEEN '다' AND '딷'
|
|
</when>
|
|
<when test='indexKeyword == "ㄹ"'>
|
|
and w.WRDDICTTL BETWEEN '라' AND '릿'
|
|
</when>
|
|
<when test='indexKeyword == "ㅁ"'>
|
|
and w.WRDDICTTL BETWEEN '마' AND '밓'
|
|
</when>
|
|
<when test='indexKeyword == "ㅂ"'>
|
|
and w.WRDDICTTL BETWEEN '바' AND '빟'
|
|
</when>
|
|
<when test='indexKeyword == "ㅅ"'>
|
|
and w.WRDDICTTL BETWEEN '사' AND '싷'
|
|
</when>
|
|
<when test='indexKeyword == "ㅇ"'>
|
|
and w.WRDDICTTL BETWEEN '아' AND '잏'
|
|
</when>
|
|
<when test='indexKeyword == "ㅈ"'>
|
|
and w.WRDDICTTL BETWEEN '자' AND '짛'
|
|
</when>
|
|
<when test='indexKeyword == "ㅊ"'>
|
|
and w.WRDDICTTL BETWEEN '차' AND '칳'
|
|
</when>
|
|
<when test='indexKeyword == "ㅋ"'>
|
|
and w.WRDDICTTL BETWEEN '카' AND '킿'
|
|
</when>
|
|
<when test='indexKeyword == "ㅌ"'>
|
|
and w.WRDDICTTL BETWEEN '타' AND '틷'
|
|
</when>
|
|
<when test='indexKeyword == "ㅍ"'>
|
|
and w.WRDDICTTL BETWEEN '파' AND '핗'
|
|
</when>
|
|
<when test='indexKeyword == "ㅎ"'>
|
|
and w.WRDDICTTL BETWEEN '하' AND '힣'
|
|
</when>
|
|
<!-- 알파벳 a ~ z에 대한 검색 -->
|
|
<when test='indexKeyword == "a"'>
|
|
and w.WRDDICTTL like "a%"
|
|
</when>
|
|
<when test='indexKeyword == "b"'>
|
|
and w.WRDDICTTL like "b%"
|
|
</when>
|
|
<when test='indexKeyword == "c"'>
|
|
and w.WRDDICTTL like "c%"
|
|
</when>
|
|
<when test='indexKeyword == "d"'>
|
|
and w.WRDDICTTL like "d%"
|
|
</when>
|
|
<when test='indexKeyword == "e"'>
|
|
and w.WRDDICTTL like "e%"
|
|
</when>
|
|
<when test='indexKeyword == "f"'>
|
|
and w.WRDDICTTL like "f%"
|
|
</when>
|
|
<when test='indexKeyword == "g"'>
|
|
and w.WRDDICTTL like "g%"
|
|
</when>
|
|
<when test='indexKeyword == "h"'>
|
|
and w.WRDDICTTL like "h%"
|
|
</when>
|
|
<when test='indexKeyword == "i"'>
|
|
and w.WRDDICTTL like "i%"
|
|
</when>
|
|
<when test='indexKeyword == "j"'>
|
|
and w.WRDDICTTL like "j%"
|
|
</when>
|
|
<when test='indexKeyword == "k"'>
|
|
and w.WRDDICTTL like "k%"
|
|
</when>
|
|
<when test='indexKeyword == "l"'>
|
|
and w.WRDDICTTL like "l%"
|
|
</when>
|
|
<when test='indexKeyword == "m"'>
|
|
and w.WRDDICTTL like "m%"
|
|
</when>
|
|
<when test='indexKeyword == "n"'>
|
|
and w.WRDDICTTL like "n%"
|
|
</when>
|
|
<when test='indexKeyword == "o"'>
|
|
and w.WRDDICTTL like "o%"
|
|
</when>
|
|
<when test='indexKeyword == "p"'>
|
|
and w.WRDDICTTL like "p%"
|
|
</when>
|
|
<when test='indexKeyword == "q"'>
|
|
and w.WRDDICTTL like "q%"
|
|
</when>
|
|
<when test='indexKeyword == "r"'>
|
|
and w.WRDDICTTL like "r%"
|
|
</when>
|
|
<when test='indexKeyword == "s"'>
|
|
and w.WRDDICTTL like "s%"
|
|
</when>
|
|
<when test='indexKeyword == "t"'>
|
|
and w.WRDDICTTL like "t%"
|
|
</when>
|
|
<when test='indexKeyword == "u"'>
|
|
and w.WRDDICTTL like "u%"
|
|
</when>
|
|
<when test='indexKeyword == "v"'>
|
|
and w.WRDDICTTL like "v%"
|
|
</when>
|
|
<when test='indexKeyword == "w"'>
|
|
and w.WRDDICTTL like "w%"
|
|
</when>
|
|
<when test='indexKeyword == "x"'>
|
|
and w.WRDDICTTL like "x%"
|
|
</when>
|
|
<when test='indexKeyword == "y"'>
|
|
and w.WRDDICTTL like "y%"
|
|
</when>
|
|
<when test='indexKeyword == "z"'>
|
|
and w.WRDDICTTL like "z%"
|
|
</when>
|
|
</choose>
|
|
</if>
|
|
<!-- 카테고리 조건 -->
|
|
<if test="category != null and category != '' and category != 'all'">
|
|
and w.WRDDICCAT = #{category}
|
|
</if>
|
|
</sql>
|
|
<select id="selectWordList" parameterType="map" resultType="io.company.localhost.common.dto.MapDto">
|
|
select
|
|
w.WRDDICSEQ,
|
|
w.WRDDICCAT,
|
|
w.WRDDICTTL,
|
|
w.WRDDICCON,
|
|
c.CMNCODNAM category,
|
|
m1.MEMBERPRF REGPRF,
|
|
m1.MEMBERNAM REGNAME,
|
|
cr.CMNCODNAM REGCOLOR,
|
|
w.WRDDICRDT REGRDT,
|
|
m2.MEMBERPRF UPDPRF,
|
|
m2.MEMBERNAM UPDNAME,
|
|
cu.CMNCODNAM UPDCOLOR,
|
|
w.WRDDICUDT UPDUDT
|
|
from
|
|
worddicty w
|
|
left join
|
|
commoncod c
|
|
on
|
|
w.WRDDICCAT = c.CMNCODVAL
|
|
left join
|
|
netmember m1
|
|
on
|
|
w.WRDDICREG = m1.MEMBERSEQ
|
|
left join
|
|
commoncod cr
|
|
on
|
|
m1.MEMBERCOL = cr.CMNCODVAL -- 등록자 색상
|
|
left join
|
|
netmember m2
|
|
on
|
|
w.WRDDICUPD = m2.MEMBERSEQ
|
|
left join
|
|
commoncod cu
|
|
on
|
|
m2.MEMBERCOL = cu.CMNCODVAL -- 수정자 색상
|
|
where
|
|
1=1
|
|
and w.WRDDICEDT IS NULL
|
|
<include refid="searchConditions"/>
|
|
order by w.WRDDICRDT desc
|
|
</select>
|
|
<select id="getTotal" parameterType="map" >
|
|
select count(*) from worddicty w
|
|
where 1=1
|
|
<include refid="searchConditions"/>
|
|
</select>
|
|
<insert id="insertWord" parameterType="map">
|
|
insert into worddicty
|
|
(
|
|
WRDDICCAT
|
|
,WRDDICTTL
|
|
,WRDDICCON
|
|
,WRDDICREG
|
|
,WRDDICRDT
|
|
,WRDDICUPD
|
|
,WRDDICUDT
|
|
<if test="WRDDICRIK != null and WRDDICRIK != ''">
|
|
,WRDDICRIK
|
|
</if>
|
|
)
|
|
values
|
|
(
|
|
#{WRDDICCAT}
|
|
,#{WRDDICTTL}
|
|
,#{WRDDICCON}
|
|
,#{userId}
|
|
,now()
|
|
,#{userId}
|
|
,now()
|
|
<if test="WRDDICRIK != null and WRDDICRIK != ''">
|
|
,WRDDICRIK
|
|
</if>
|
|
)
|
|
</insert>
|
|
<update id="updateWord" parameterType="map">
|
|
update
|
|
worddicty
|
|
set
|
|
WRDDICCAT = #{WRDDICCAT}
|
|
,WRDDICTTL = #{WRDDICTTL}
|
|
,WRDDICCON = #{WRDDICCON}
|
|
,WRDDICUPD = #{userId}
|
|
,WRDDICUDT = now()
|
|
<if test="WRDDICRIK != null and WRDDICRIK != ''">
|
|
,WRDDICRIK = #{WRDDICRIK}
|
|
</if>
|
|
where
|
|
WRDDICSEQ = #{WRDDICSEQ}
|
|
</update>
|
|
<select id="selectWordDetail" parameterType="map" resultType="io.company.localhost.common.dto.MapDto">
|
|
select *
|
|
from
|
|
worddicty
|
|
where
|
|
WRDDICSEQ = #{WRDDICSEQ}
|
|
</select>
|
|
<update id="updateword" parameterType="map">
|
|
UPDATE
|
|
worddicty
|
|
SET
|
|
WRDDICEDT = now()
|
|
WHERE WRDDICSEQ IN
|
|
<foreach item="id" collection="idList" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
</update>
|
|
<select id="selectIndexCategory">
|
|
SELECT
|
|
CHARACTER_,
|
|
COUNT(*) AS COUNT
|
|
FROM (
|
|
SELECT 'ㄱ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '가' AND '깋'
|
|
UNION ALL
|
|
SELECT 'ㄴ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '나' AND '닣'
|
|
UNION ALL
|
|
SELECT 'ㄷ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '다' AND '딷'
|
|
UNION ALL
|
|
SELECT 'ㄹ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '라' AND '릿'
|
|
UNION ALL
|
|
SELECT 'ㅁ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '마' AND '밓'
|
|
UNION ALL
|
|
SELECT 'ㅂ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '바' AND '빟'
|
|
UNION ALL
|
|
SELECT 'ㅅ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '사' AND '싷'
|
|
UNION ALL
|
|
SELECT 'ㅇ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '아' AND '잏'
|
|
UNION ALL
|
|
SELECT 'ㅈ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '자' AND '짛'
|
|
UNION ALL
|
|
SELECT 'ㅊ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '차' AND '칳'
|
|
UNION ALL
|
|
SELECT 'ㅋ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '카' AND '킿'
|
|
UNION ALL
|
|
SELECT 'ㅌ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '타' AND '틷'
|
|
UNION ALL
|
|
SELECT 'ㅍ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '파' AND '핗'
|
|
UNION ALL
|
|
SELECT 'ㅎ' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL BETWEEN '하' AND '힣'
|
|
UNION ALL
|
|
SELECT 'a' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'a%'
|
|
UNION ALL
|
|
SELECT 'b' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'b%'
|
|
UNION ALL
|
|
SELECT 'c' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'c%'
|
|
UNION ALL
|
|
SELECT 'd' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'd%'
|
|
UNION ALL
|
|
SELECT 'e' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'e%'
|
|
UNION ALL
|
|
SELECT 'f' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'f%'
|
|
UNION ALL
|
|
SELECT 'g' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'g%'
|
|
UNION ALL
|
|
SELECT 'h' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'h%'
|
|
UNION ALL
|
|
SELECT 'i' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'i%'
|
|
UNION ALL
|
|
SELECT 'j' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'j%'
|
|
UNION ALL
|
|
SELECT 'k' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'k%'
|
|
UNION ALL
|
|
SELECT 'l' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'l%'
|
|
UNION ALL
|
|
SELECT 'm' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'm%'
|
|
UNION ALL
|
|
SELECT 'n' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'n%'
|
|
UNION ALL
|
|
SELECT 'o' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'o%'
|
|
UNION ALL
|
|
SELECT 'p' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'p%'
|
|
UNION ALL
|
|
SELECT 'q' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'q%'
|
|
UNION ALL
|
|
SELECT 'r' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'r%'
|
|
UNION ALL
|
|
SELECT 's' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 's%'
|
|
UNION ALL
|
|
SELECT 't' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 't%'
|
|
UNION ALL
|
|
SELECT 'u' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'u%'
|
|
UNION ALL
|
|
SELECT 'v' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'v%'
|
|
UNION ALL
|
|
SELECT 'w' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'w%'
|
|
UNION ALL
|
|
SELECT 'x' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'x%'
|
|
UNION ALL
|
|
SELECT 'y' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'y%'
|
|
UNION ALL
|
|
SELECT 'z' AS CHARACTER_, WRDDICTTL FROM worddicty WHERE WRDDICTTL LIKE 'z%'
|
|
) AS combined
|
|
GROUP BY CHARACTER_
|
|
ORDER BY
|
|
CASE
|
|
WHEN CHARACTER_ BETWEEN 'ㄱ' AND 'ㅎ' THEN 1
|
|
ELSE 2
|
|
END,
|
|
CHARACTER_
|
|
</select>
|
|
</mapper>
|