368 lines
22 KiB
XML
368 lines
22 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<sqlMap xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/tr/xmlschema-1/" namespace="">
|
|
|
|
<alias>
|
|
<typeAlias alias="board" type="NP.Model.Board, NP.Model" />
|
|
<typeAlias alias="bm" type="NP.Model.BoardMaster, NP.Model" />
|
|
<typeAlias alias="bmo" type="NP.Model.BoardMasterOpening, NP.Model" />
|
|
<typeAlias alias="boardcmt" type="NP.Model.BoardCMT, NP.Model "/>
|
|
</alias>
|
|
<cacheModels>
|
|
<cacheModel id="boardcache" implementation="LRU" >
|
|
<flushInterval hours="1" />
|
|
<property name="CacheSize" value="1000" />
|
|
</cacheModel>
|
|
</cacheModels>
|
|
<resultMaps></resultMaps>
|
|
<statements>
|
|
<select id="board.bms" parameterClass="hashtable" resultClass="bm">
|
|
select a.*
|
|
from (
|
|
select a.bmno,a.bmcode,a.bmposition,a.bmname,a.bmdesc,a.bmtype,a.disptype,a.isuseopening,a.isreply,a.isopen,a.isdefault,a.cdt,a.udt
|
|
,a.bmno value,a.bmname text
|
|
,b.asno,b.asname
|
|
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.cdt desc</isNull>) rno
|
|
,count(a.cno) over() pagetotalcount
|
|
from boardmaster a
|
|
left outer join assign b on b.asno=a.asno
|
|
<dynamic prepend="where">
|
|
<isNotNull property="bmno" prepend="and">a.bmno=#bmno#</isNotNull>
|
|
<isNotNull property="bmnos" prepend="and">a.bmno in ($bmnos$)</isNotNull>
|
|
<isNotNull property="bmposition" prepend="and">a.bmposition=#bmposition#</isNotNull>
|
|
<isNotNull property="bmtype" prepend="and">a.bmtype=#bmtype#</isNotNull>
|
|
<isNotNull property="disptype" prepend="and">a.disptype=#disptype#</isNotNull>
|
|
<isNotNull property="bmname" prepend="and">a.bmname=#bmname#</isNotNull>
|
|
<isNotNull property="bmcode" prepend="and">a.bmcode=#bmcode#</isNotNull>
|
|
<isNotNull property="isopen" prepend="and">a.isopen=#isopen#</isNotNull>
|
|
<isNotNull property="asno" prepend="and">a.asno=#asno#</isNotNull>
|
|
<isNotNull property="isdefaults" prepend="and">a.isdefault in ($isdefaults$)</isNotNull>
|
|
<isNotNull property="isdefault" prepend="and">a.isdefault =#isdefault#</isNotNull>
|
|
</dynamic>
|
|
) a
|
|
<include refid="sql.pagedynamic"></include>
|
|
order by a.rno
|
|
</select>
|
|
<select id="board.bms.forassign" parameterClass="hashtable" resultClass="bm">
|
|
select a.*
|
|
from (
|
|
select a.bmno,a.bmcode,a.bmposition,a.bmname,a.bmdesc,a.bmtype,a.disptype,a.isuseopening,a.isreply,a.isopen,a.isdefault,a.cdt,a.udt
|
|
,a.bmno value,a.bmname text
|
|
,b.asno,b.asname
|
|
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.cdt desc</isNull>) rno
|
|
,count(a.cno) over() pagetotalcount
|
|
from assign a0
|
|
inner join boardmaster a on a.asno=a0.asno
|
|
<isNotNull property="isdefault">and a.isdefault=#isdefault#</isNotNull>
|
|
left outer join assign b on b.asno=a.asno
|
|
where a0.isdel=0
|
|
<isNotNull property="subdomain" prepend="and">a0.subdomain=#subdomain#</isNotNull>
|
|
) a
|
|
<include refid="sql.pagedynamic"></include>
|
|
order by a.rno
|
|
</select>
|
|
<select id="board.bmos" parameterClass="int" resultClass="bmo">
|
|
select a.opno,a.bmno,a.opname,a.isuse,a.dsort
|
|
,a.opno value,a.opname text
|
|
from boardmasteropening a
|
|
where a.bmno=#bmno# and a.isdel=0
|
|
order by a.dsort,a.cdt
|
|
</select>
|
|
<select id="board.check.bmcode" parameterClass="hashtable" resultClass="bm">
|
|
select a.bmno
|
|
from boardmaster a
|
|
<dynamic prepend="where">
|
|
<isNotNull property="bmnonot" prepend="and">a.bmno <> #bmnonot#</isNotNull>
|
|
<isNotNull property="bmcode" prepend="and">a.bmcode=#bmcode#</isNotNull>
|
|
</dynamic>
|
|
</select>
|
|
<insert id="board.bm.in" parameterClass="bm">
|
|
insert into boardmaster (bmcode,bmposition,bmname,bmdesc,bmtype,disptype,isuseopening,isreply,isopen,isdefault,<include refid="sql.inc"></include>)
|
|
values (#bmcode#,#bmposition#,#bmname#,#bmdesc#,#bmtype#,#disptype#,#isuseopening#,#isreply#,#isopen#,0,<include refid="sql.inv"></include>);
|
|
<selectKey type="post" property="bmno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
|
|
</insert>
|
|
<update id="board.bm.up" parameterClass="bm">
|
|
update boardmaster set <include refid="sql.up"></include>
|
|
,bmname =#bmname#
|
|
,bmdesc =#bmdesc#
|
|
,bmtype =case when isdefault>0 then bmtype else #bmtype# end
|
|
,disptype =case when isdefault>0 then disptype else #disptype# end
|
|
,isuseopening =#isuseopening#
|
|
,isreply =#isreply#
|
|
,isopen =case when isdefault>0 then isopen else #isopen# end
|
|
where bmno=#bmno#
|
|
</update>
|
|
<update id="board.bd.read" parameterClass="int">
|
|
update board set rcount = rcount +1 where bno=#bno#
|
|
</update>
|
|
<update id="board.bmo.del" parameterClass="bm">
|
|
update boardmasteropening set isdel=1 where bmno=#bmno# <isNotNull property="opnosnot" prepend="and">opno not in ($opnosnot$)</isNotNull>
|
|
</update>
|
|
<update id="board.bmo.save" parameterClass="bm">
|
|
<isNotNull property="inquery">
|
|
insert into boardmasteropening (bmno,opname,isuse,isdel,dsort,cdt,cno,udt,uno,uip)
|
|
values $inquery$;
|
|
</isNotNull>
|
|
<isNotNull property="upquery">
|
|
update boardmasteropening a
|
|
inner join (
|
|
<iterate property="BMOs" open="" conjunction="union all" close="">
|
|
select #BMOs[].opno# opno, #BMOs[].opname# opname,#BMOs[].isuse# isuse,#BMOs[].dsort# dsort
|
|
</iterate>
|
|
) b on b.opno=a.opno
|
|
set a.opname=b.opname,a.isuse=b.isuse,a.dsort=b.dsort,udt=now(),uno=#uno#,uip=#uip#
|
|
where a.bmno=#bmno#
|
|
</isNotNull>
|
|
</update>
|
|
<update id="board.bmassign.save" parameterClass="hashtable">
|
|
update boardmaster set <include refid="sql.up"></include>,isopen=1 where bmno in (select bmno from (select bmno from boardmaster where asno=#asno# and isdefault=3) a);
|
|
|
|
insert into boardmaster (bmcode,bmposition,bmname,bmdesc,bmtype,disptype,isuseopening,isreply,isopen,isdefault,asno,<include refid="sql.inc"></include>)
|
|
select concat('assignnotice_',#asno#),0,'공지사항',null,0,0,0,1,1,3,#asno#,<include refid="sql.inv"></include>
|
|
from (select 1 col1) a
|
|
left outer join boardmaster b on b.asno=#asno# and b.isdefault=3
|
|
where b.bmno is null;
|
|
</update>
|
|
<update id="board.bmassign.save2" parameterClass="hashtable">
|
|
update boardmaster set <include refid="sql.up"></include>,isopen=0 where bmno in (select bmno from (select bmno from boardmaster where asno=#asno# and isdefault=3) a)
|
|
</update>
|
|
<select id="board.bs" parameterClass="hashtable" resultClass="board">
|
|
select a.rno,a.pagetotalcount,a.pcno
|
|
,e.asname
|
|
,c.bmno,c.bmname,c.isuseopening,c.isreply,c.bmtype
|
|
,f.opname
|
|
,b.cno,b.bno,b.pbno,b.subject,b.istop,b.issecr,b.cdt,d.username cnoname,d.userid cnoid
|
|
,b.rcount,b.rpcount,b.fgno,b.fgnothumb,case when #getcontents# is null then '' else b.contents end contents
|
|
,d.usertype
|
|
,g.fileurl
|
|
from (
|
|
select a.*
|
|
from (
|
|
select b.bno
|
|
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">b.istop desc,case when b.pbno is null then b.cdt else b2.cdt end desc,case when b.pbno is null then 0 else 1 end</isNull>) rno
|
|
,count(a.cno) over() pagetotalcount,b2.cno pcno
|
|
from boardmaster a
|
|
inner join board b on b.bmno=a.bmno
|
|
<isNotNull property="bno">and b.bno=#bno#</isNotNull>
|
|
and b.isdel=0
|
|
<isNotNull property="opno">and b.opno=#opno#</isNotNull>
|
|
<isNotNull property="isopen">and b.isopen=#isopen#</isNotNull>
|
|
<isNotNull property="issecr">and b.issecr=#issecr#</isNotNull>
|
|
<isNotNull property="opno">and b.opno=#opno#</isNotNull>
|
|
<isNotNull property="isbase" prepend="and">b.pbno is null</isNotNull>
|
|
<isNotNull property="cno" prepend="and">b.cno=#cno#</isNotNull>
|
|
<isNotNull property="cmno" prepend="and">b.cmno=#cmno#</isNotNull>
|
|
<isNotNull property="bmposition" prepend="and">a.bmposition=#bmposition#</isNotNull>
|
|
left outer join board b2 on b.pbno is not null and b2.bno=b.pbno
|
|
inner join users c on c.userno=b.cno
|
|
<dynamic prepend="where">
|
|
<isNotNull property="bmno" prepend="and">a.bmno=#bmno#</isNotNull>
|
|
<isNotNull property="asno" prepend="and">a.asno=#asno#</isNotNull>
|
|
<isNotNull property="scc" prepend="and">(b.subject like concat('%',#scc#,'%') or b.contents like concat('%',#scc#,'%') or c.username=#scc#)</isNotNull>
|
|
</dynamic>
|
|
) a
|
|
<include refid="sql.pagedynamic"></include>
|
|
) a
|
|
inner join board b on b.bno=a.bno
|
|
<!--left outer join board b2 on b2.pbno=b.bno and b2.isdel=0-->
|
|
inner join boardmaster c on c.bmno=b.bmno
|
|
inner join users d on d.userno=b.cno
|
|
left outer join assign e on e.asno=c.asno
|
|
left outer join boardmasteropening f on f.opno=b.opno
|
|
left outer join fileinfo g on g.fgno=b.fgnothumb and g.isdel=0
|
|
order by a.rno
|
|
</select>
|
|
<select id="board.bs.bypbnos" parameterClass="string" resultClass="board">
|
|
select f.opname,a.bno,a.pbno,a.subject,a.cdt,b.username cnoname,a.rpcount,a.issecr,a.cno
|
|
,case when #getcontents# is null then '' else a.contents end contents
|
|
,b.usertype
|
|
from board a
|
|
inner join users b on b.userno=a.cno
|
|
left outer join boardmasteropening f on f.opno=a.opno
|
|
where a.pbno in ($pbnos$) and a.isopen=1 and a.isdel=0
|
|
</select>
|
|
<select id="board.roombs" parameterClass="hashtable" resultClass="board">
|
|
select a.rno,a.pagetotalcount
|
|
,e.asname
|
|
,c.bmno,c.bmname,c.isuseopening,c.isreply
|
|
,f.opname
|
|
<!--,b.bno,b.pbno,b.subject,b.istop,b.issecr,b.cdt,d.username cnoname,b.rcount,b.fgno,b.fgnothumb,b.cmno-->
|
|
,b.bno,b.pbno,b.subject,b.istop,b.issecr,b.cdt,d.username cnoname,d.userid cnoid, b.rcount,b.fgno,b.fgnothumb,b.cmno
|
|
,g.cname,g.classno
|
|
,h.tyear,h.tseq
|
|
from (
|
|
select a.*
|
|
from (
|
|
select b.bno
|
|
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">b.istop desc,case when b.pbno is null then b.cdt else b2.cdt end desc,case when b.pbno is null then 0 else 1 end</isNull>) rno
|
|
,count(a.cno) over() pagetotalcount
|
|
from boardmaster a
|
|
inner join board b on b.bmno=a.bmno and b.isdel=0 <isNotNull property="cmno">and b.cmno=#cmno#</isNotNull>
|
|
left outer join board b2 on b.pbno is not null and b2.bno=b.pbno
|
|
inner join users c on c.userno=b.cno
|
|
inner join cm d on d.cmno=b.cmno
|
|
inner join term e on e.tmno=d.tmno <isNotNull property="tmno">and d.tmno=#tmno#</isNotNull> <isNotNull property="tyear">and e.tyear=#tyear#</isNotNull>
|
|
<isNotNull property="teacherno">
|
|
inner join cmprof cp on cp.cmno=b.cmno and cp.userno=#teacherno#
|
|
</isNotNull>
|
|
where a.bmposition=1
|
|
<isNotNull property="bmno" prepend="and">a.bmno=#bmno#</isNotNull>
|
|
<isNotNull property="asno" prepend="and">a.asno=#asno#</isNotNull>
|
|
<isNotNull property="scc" prepend="and">(b.subject like concat('%',#scc#,'%') or b.contents like concat('%',#scc#,'%') or c.username=#scc#)</isNotNull>
|
|
) a
|
|
<include refid="sql.pagedynamic"></include>
|
|
) a
|
|
inner join board b on b.bno=a.bno
|
|
inner join boardmaster c on c.bmno=b.bmno
|
|
inner join users d on d.userno=b.cno
|
|
inner join cm g on g.cmno=b.cmno
|
|
inner join term h on h.tmno=g.tmno
|
|
left outer join assign e on e.asno=c.asno
|
|
left outer join boardmasteropening f on f.opno=b.opno
|
|
order by a.rno
|
|
</select>
|
|
<select id="board.get" parameterClass="long" resultClass="board">
|
|
select e.asname
|
|
,c.bmno,c.bmname,c.isuseopening,c.isreply,c.disptype,c.bmtype
|
|
,f.opname
|
|
,b.bno,b.pbno,b.subject,b.istop,b.issecr,b.cdt,d.username cnoname,b.rcount,b.fgno,b.fgnothumb,b.opno,b.contents,b.isopen
|
|
,b2.subject psubject
|
|
,g.cmno,g.cname,g.classno
|
|
,h.tmno,h.tyear,h.tseq
|
|
,count(b3.bno) ccount
|
|
from board b
|
|
inner join boardmaster c on c.bmno=b.bmno
|
|
inner join users d on d.userno=b.cno
|
|
left outer join board b2 on b2.bno=b.pbno and b2.isdel=0
|
|
left outer join board b3 on b3.pbno=b.bno and b3.isdel=0
|
|
left outer join assign e on e.asno=c.asno
|
|
left outer join boardmasteropening f on f.opno=b.opno
|
|
left outer join cm g on g.cmno=b.cmno
|
|
left outer join term h on h.tmno=g.tmno
|
|
where b.bno=#bno#
|
|
group by e.asname
|
|
,c.bmno,c.bmname,c.isuseopening,c.isreply,c.disptype,c.bmtype
|
|
,f.opname
|
|
,b.bno,b.pbno,b.subject,b.istop,b.issecr,b.cdt,d.username,b.rcount,b.fgno,b.fgnothumb,b.opno,b.contents,b.isopen
|
|
,b2.subject
|
|
,g.cmno,g.cname,g.classno
|
|
,h.tmno,h.tyear,h.tseq
|
|
</select>
|
|
<select id="board.bcmt.cnt" parameterClass="hashtable" resultClass="board">
|
|
select a.bno,count(b.bcno) ccount
|
|
from board a
|
|
left outer join boardcmt b on b.bno=a.bno and b.isdel=0
|
|
<dynamic prepend="where">
|
|
<isNotNull property="bnos" prepend="and">a.bno in ($bnos$)</isNotNull>
|
|
</dynamic>
|
|
group by a.bno
|
|
</select>
|
|
<select id="board.boardcmts" parameterClass="long" resultClass="boardcmt">
|
|
select a.bcno,a.bno,a.ctext,a.isdel,a.cdt,a.udt,a.cno
|
|
,b.username cnoname,b.usertype
|
|
from boardcmt a
|
|
inner join users b on b.userno=a.cno
|
|
where a.bno=#bno# and a.isdel=0
|
|
order by a.cdt desc
|
|
</select>
|
|
<insert id="board.in" parameterClass="board">
|
|
insert into board (pbno,bmno,opno,subject,contents,fgno,fgnothumb,cmno,rcount,rpcount,isdel,istop,issecr,isopen,<include refid="sql.inc"></include>)
|
|
values (#pbno#,#bmno#,#opno#,#subject#,#contents#,#fgno#,#fgnothumb#,#cmno#,0,0,0,#istop#,#issecr#,#isopen#,<include refid="sql.inv"></include>);
|
|
<selectKey type="post" property="bno" resultClass="long">SELECT LAST_INSERT_ID()</selectKey>
|
|
</insert>
|
|
<insert id="board.inp" parameterClass="board">
|
|
insert into board (pbno,bmno,opno,subject,contents,fgno,fgnothumb,cmno,rcount,rpcount,isdel,istop,issecr,isopen,<include refid="sql.inc"></include>)
|
|
select bno,bmno,opno,#subject#,#contents#,#fgno#,#fgnothumb#,cmno,0,0,0,0,#issecr#,#isopen#,<include refid="sql.inv"></include>
|
|
from board where bno=#pbno#;
|
|
<selectKey type="post" property="bno" resultClass="long">SELECT LAST_INSERT_ID()</selectKey>
|
|
</insert>
|
|
<update id="board.up" parameterClass="board">
|
|
update board set <include refid="sql.up"></include>
|
|
,opno =case when pbno is null then #opno# else opno end
|
|
,subject =#subject#
|
|
,contents =#contents#
|
|
,fgno =#fgno#
|
|
,fgnothumb =#fgnothumb#
|
|
,istop =case when pbno is null then #istop# else istop end
|
|
,issecr =#issecr#
|
|
,isopen =#isopen#
|
|
where bno=#bno#
|
|
</update>
|
|
<update id="board.del" parameterClass="hashtable">
|
|
update board set <include refid="sql.up"></include>,isdel=1 where bno=#bno# <isNotNull property="cno">and cno=#cno#</isNotNull>
|
|
</update>
|
|
<insert id="board.boardcmt.in" parameterClass="boardcmt">
|
|
update board set rpcount = rpcount+1 where bno=#bno#;
|
|
insert into boardcmt (bno,ctext,isdel,<include refid="sql.inc"></include>)
|
|
values (#bno#,#ctext#,0,<include refid="sql.inv"></include>);
|
|
<selectKey type="post" property="bcno" resultClass="long">SELECT LAST_INSERT_ID()</selectKey>
|
|
</insert>
|
|
<update id="board.boardcmt.up" parameterClass="boardcmt">
|
|
update boardcmt set <include refid="sql.up"></include>
|
|
,ctext=#ctext#
|
|
where bcno=#bcno# <isGreaterThan property="cno" compareValue="0">and cno=#cno#</isGreaterThan>
|
|
</update>
|
|
<update id="board.boardcmt.del" parameterClass="hashtable">
|
|
update board a
|
|
inner join boardcmt b on b.bcno=#bcno# and a.bno=b.bno <isGreaterThan property="cno" compareValue="0">and b.cno=#cno#</isGreaterThan>
|
|
set a.rpcount = a.rpcount-1
|
|
where a.bno=b.bno;
|
|
update boardcmt set <include refid="sql.up"></include>,isdel=1 where bcno=#bcno# <isGreaterThan property="cno" compareValue="0">and cno=#cno#</isGreaterThan>
|
|
</update>
|
|
<select id="board.bs.forassign" parameterClass="hashtable" resultClass="board">
|
|
select a.rno,a.pagetotalcount
|
|
,e.asname
|
|
,c.bmno,c.bmname,c.isuseopening,c.isreply,c.bmtype
|
|
,f.opname
|
|
,b.cno,b.bno,b.pbno,b.subject,b.istop,b.issecr,b.cdt,d.username cnoname,b.rcount,b.rpcount,b.fgno,b.fgnothumb,case when #getcontents# is null then '' else b.contents end contents
|
|
,d.usertype
|
|
,g.fileurl
|
|
from (
|
|
select a.*
|
|
from (
|
|
select b.bno
|
|
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">b.istop desc,case when b.pbno is null then b.cdt else b2.cdt end desc,case when b.pbno is null then 0 else 1 end</isNull>) rno
|
|
,count(a.cno) over() pagetotalcount
|
|
from assign a0
|
|
inner join boardmaster a on a.asno=a0.asno
|
|
<isNotNull property="bmno" prepend="and">a.bmno=#bmno#</isNotNull>
|
|
<isNotNull property="asno" prepend="and">a.asno=#asno#</isNotNull>
|
|
<isNotNull property="isdefault">and a.isdefault=#isdefault#</isNotNull>
|
|
inner join board b on b.bmno=a.bmno
|
|
<isNotNull property="bno">and b.bno=#bno#</isNotNull>
|
|
and b.isdel=0
|
|
<isNotNull property="opno">and b.opno=#opno#</isNotNull>
|
|
<isNotNull property="isopen">and b.isopen=#isopen#</isNotNull>
|
|
<isNotNull property="issecr">and b.issecr=#issecr#</isNotNull>
|
|
<isNotNull property="opno">and b.opno=#opno#</isNotNull>
|
|
left outer join board b2 on b.pbno is not null and b2.bno=b.pbno
|
|
inner join users c on c.userno=b.cno
|
|
where a0.subdomain=#subdomain# and a0.isdel=0
|
|
<isNotNull property="scc" prepend="and">(b.subject like concat('%',#scc#,'%') or b.contents like concat('%',#scc#,'%') or c.username=#scc#)</isNotNull>
|
|
) a
|
|
<include refid="sql.pagedynamic"></include>
|
|
) a
|
|
inner join board b on b.bno=a.bno
|
|
<!--left outer join board b2 on b2.pbno=b.bno and b2.isdel=0-->
|
|
inner join boardmaster c on c.bmno=b.bmno
|
|
inner join users d on d.userno=b.cno
|
|
left outer join assign e on e.asno=c.asno
|
|
left outer join boardmasteropening f on f.opno=b.opno
|
|
left outer join fileinfo g on g.fgno=b.fgnothumb and g.isdel=0
|
|
order by a.rno
|
|
<isNotNull property="limit">limit $limit$</isNotNull>
|
|
</select>
|
|
<select id="board.bs.forqna" parameterClass="hashtable" resultClass="board">
|
|
select a.bno,a.pbno,a.subject,a.contents,a.cdt,a.fgno,f.opname,a.cdt,b.usertype,a.rcount
|
|
from board a
|
|
inner join users b on b.userno=a.cno
|
|
left outer join boardmasteropening f on f.opno=a.opno
|
|
where a.bno=#bno# and (a.cno=#cno# or b.usertype in (91,92))
|
|
union all
|
|
select a.bno,a.pbno,a.subject,a.contents,a.cdt,a.fgno,f.opname,a.cdt,b.usertype,a.rcount
|
|
from board a
|
|
inner join users b on b.userno=a.cno
|
|
left outer join boardmasteropening f on f.opno=a.opno
|
|
where a.pbno=#bno#
|
|
</select>
|
|
</statements>
|
|
</sqlMap> |