FAICS/src/main/resources/sqlmapper/mappers/board/board.xml

249 lines
6.5 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="Board">
<select id="Board.selectBoardList" parameterType="boardSearchVO" resultType="boardVO">
select BD_SEQ AS SEQ,
BD_MB_ID AS USERID,
BD_GROUP_SEQ AS GROUPSEQ,
BD_CATEGORY AS CATEGORY,
BD_NAME AS USERNAME,
BD_CONTENT AS CONTENT,
BD_SUBJECT AS SUBJECT,
BD_PARENT_SEQ AS PARENTSEQ,
BD_PREV_SEQ AS PREVSEQ,
BD_NEXT_SEQ AS NEXTSEQ,
BD_STEP AS STEP,
BD_DEPTH AS DEPTH,
BD_REGDATE AS REGDATE,
BD_HIT AS HIT,
BD_RECOMMEND AS RECOMMEND,
BD_IP AS IP,
BD_NOTICE AS NOTICE,
BD_HTML AS HTML,
BD_NUM1 AS NUM1,
BD_NUM2 AS NUM2,
BD_DATA1 AS DATA1,
BD_DATA2 AS DATA2,
FILECNT
from H3_BD_${id}_LIST list
left outer join (select BF_BD_SEQ, count(*) as filecnt
from H3_BD_notice_FILE
group by BF_BD_SEQ) file
on list.bd_seq = file.bf_bd_seq
<where>
<if test='category != " " or id == "stat_bbs"'>
AND BD_CATEGORY = #{category}
</if>
<if test="searchKeyword != null and searchKeyword != ''">
<choose>
<when test="searchCondition == 0">
AND BD_DATA1 LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 1">
AND BD_NAME LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 2">
AND BD_SUBJECT LIKE '%' || #{searchKeyword} || '%'
</when>
</choose>
</if>
</where>
ORDER BY BD_NOTICE DESC, BD_GROUP_SEQ DESC, BD_STEP asc
limit #{recordCountPerPage} offset #{firstIndex}
</select>
<select id="Board.selectBoardTotalCnt" parameterType="boardSearchVO" resultType="int">
SELECT
COUNT(*)
FROM
H3_BD_${id}_LIST
</select>
<select id="Board.selectBoardListTotCnt" parameterType="boardSearchVO" resultType="int">
SELECT
COUNT(*)
FROM
H3_BD_${id}_LIST
WHERE 1=1
<choose>
<when test='category == " " and id == "stat_bbs"'>
</when>
<otherwise>
AND BD_CATEGORY = #{category}
</otherwise>
</choose>
<if test="searchKeyword != null and searchKeyword != ''">
<choose>
<when test="searchCondition == 0">
AND BD_DATA1 LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 1">
AND BD_NAME LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 2">
AND BD_SUBJECT LIKE '%' || #{searchKeyword} || '%'
</when>
</choose>
</if>
</select>
<select id="Board.selectBoard" parameterType="boardVO" resultType="boardVO">
SELECT
BBS.BD_SEQ AS SEQ, BBS.BD_MB_ID AS USERID, BBS.BD_GROUP_SEQ AS GROUPSEQ,
BBS.BD_CATEGORY AS CATEGORY, BBS.BD_NAME AS USERNAME, BBS.BD_CONTENT AS CONTENT,
BBS.BD_SUBJECT AS SUBJECT, BBS.BD_PARENT_SEQ AS PARENTSEQ, BBS.BD_PREV_SEQ AS PREVSEQ,
BBS.BD_NEXT_SEQ AS NEXTSEQ, BBS.BD_STEP AS STEP, BBS.BD_DEPTH AS DEPTH,
BBS.BD_REGDATE AS REGDATE, BBS.BD_HIT AS HIT, BBS.BD_RECOMMEND AS RECOMMEND,
BBS.BD_IP AS IP, BBS.BD_NOTICE AS NOTICE, BBS.BD_HTML AS HTML,
BBS.BD_NUM1 AS NUM1, BBS.BD_NUM2 AS NUM2, BBS.BD_DATA1 AS DATA1, BBS.BD_DATA2 AS DATA2,
#{id} ID
FROM
H3_BD_${id}_LIST BBS
WHERE
BBS.BD_SEQ = #{seq}
</select>
<insert id="Board.insertBoard" parameterType="boardVO">
INSERT INTO
H3_BD_${id}_LIST (
BD_MB_ID,
BD_CATEGORY,
BD_NAME,
BD_GROUP_SEQ,
BD_CONTENT,
BD_SUBJECT,
BD_PARENT_SEQ,
BD_PREV_SEQ,
BD_NEXT_SEQ,
BD_STEP,
BD_DEPTH,
BD_REGDATE,
BD_HIT,
BD_RECOMMEND,
BD_IP,
BD_NOTICE,
BD_HTML,
BD_NUM1,
BD_NUM2,
BD_DATA1,
BD_DATA2,
BD_PLACE1,
BD_POSITION
) VALUES (
#{userId},
#{category},
#{userName},
#{groupSeq},
#{content},
#{subject},
#{parentSeq},
#{prevSeq},
#{nextSeq},
#{step},
#{depth},
NOW(),
${hit},
0,
#{ip,jdbcType=VARCHAR},
#{notice},
1,
0,
0,
#{data1,jdbcType=VARCHAR},
#{data2,jdbcType=VARCHAR},
#{place1,jdbcType=VARCHAR},
#{position,jdbcType=VARCHAR}
)
<selectKey resultType="int" keyProperty="seq" order="AFTER">
SELECT currval(#{id}||'_bd_seq') as seq
</selectKey>
</insert>
<update id="Board.updateGrpSeq" parameterType="boardVO">
UPDATE
H3_BD_${id}_LIST
SET
BD_GROUP_SEQ = #{seq}
WHERE
BD_SEQ = #{seq}
</update>
<select id="Board.selectPrevBoard" parameterType="boardVO" resultType="boardVO">
SELECT BD_SEQ AS SEQ,
BD_MB_ID AS USERID,
BD_GROUP_SEQ AS GROUPSEQ,
BD_CATEGORY AS CATEGORY,
BD_NAME AS USERNAME,
BD_CONTENT AS CONTENT,
BD_SUBJECT AS SUBJECT,
BD_PARENT_SEQ AS PARENTSEQ,
BD_PREV_SEQ AS PREVSEQ,
BD_NEXT_SEQ AS NEXTSEQ,
BD_STEP AS STEP,
BD_DEPTH AS DEPTH,
BD_REGDATE AS REGDATE,
BD_HIT AS HIT,
BD_RECOMMEND AS RECOMMEND,
BD_IP AS IP,
BD_NOTICE AS NOTICE,
BD_HTML AS HTML,
BD_NUM1 AS NUM1,
BD_NUM2 AS NUM2,
BD_DATA1 AS DATA1,
BD_DATA2 AS DATA2,
#{id} ID
FROM H3_BD_${id}_LIST
<where>
<if test='seq != null and seq != 0'>
AND BD_SEQ = #{seq}
</if>
<if test='category != " " and id != "stat_bbs"'>
AND BD_CATEGORY = #{category}
</if>
</where>
order by bd_seq desc
limit 1 offset 1
</select>
<update id="Board.updateGrpStep" parameterType="boardVO">
UPDATE
H3_BD_${id}_LIST
SET
BD_STEP = BD_STEP + 1
WHERE
BD_GROUP_SEQ = #{seq} AND
BD_STEP > #{step}
</update>
<update id="Board.updatePrevNextSeq" parameterType="boardVO">
UPDATE
H3_BD_${id}_LIST
SET
BD_PREV_SEQ = #{prevSeq},
BD_NEXT_SEQ = #{nextSeq}
WHERE
BD_SEQ = #{seq}
</update>
<update id="Board.updateBoard" parameterType="boardVO">
UPDATE
H3_BD_${id}_LIST
SET
BD_SUBJECT = #{subject},
BD_CONTENT = #{content},
BD_NOTICE = #{notice},
BD_HIT = #{hit}
WHERE
BD_SEQ = #{seq}
</update>
<delete id="Board.deleteBoard" parameterType="boardVO">
DELETE
FROM
H3_BD_${id}_LIST
WHERE
BD_SEQ = #{seq}
</delete>
</mapper>