localhost-back/src/main/resources/mapper/netprojctMapper.xml

125 lines
4.0 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.NetprojctMapper">
<!-- 프로젝트 목록 조회 -->
<select id="selectProject" parameterType="map" resultType="io.company.localhost.common.dto.MapDto">
SELECT DISTINCT
p.*,
c.CMNCODNAM AS projctcolor
FROM netprojct p
LEFT JOIN commoncod c ON p.PROJCTCOL = c.CMNCODVAL
LEFT JOIN promember pm ON p.PROJCTSEQ = pm.PROJCTSEQ
WHERE c.CMNCODYON = '1'
<if test="searchKeyword != null and searchKeyword != ''">
AND (
p.PROJCTNAM LIKE CONCAT('%', #{searchKeyword}, '%')
OR EXISTS (
SELECT 1
FROM promember pm2
JOIN netmember m ON pm2.MEMBERSEQ = m.MEMBERSEQ
WHERE pm2.PROJCTSEQ = p.PROJCTSEQ
AND pm2.PROJCTYON = '1'
AND m.membernam LIKE CONCAT('%', #{searchKeyword}, '%')
)
OR p.PROJCTARR LIKE CONCAT('%', #{searchKeyword}, '%')
OR p.PROJCTDTL LIKE CONCAT('%', #{searchKeyword}, '%')
OR p.PROJCTZIP LIKE CONCAT('%', #{searchKeyword}, '%')
)
</if>
<if test="category != null and category != ''">
AND SUBSTRING(p.PROJCTSTR, 1, 4) = #{category}
</if>
ORDER BY p.PROJCTSEQ DESC
</select>
<!-- 프로젝트 등록 -->
<insert id="insertProject" useGeneratedKeys="true" keyProperty="PROJCTSEQ">
INSERT INTO netprojct (
PROJCTNAM,
PROJCTCOL,
PROJCTSTR,
PROJCTEND,
PROJCTDES,
PROJCTARR,
PROJCTDTL,
PROJCTZIP,
PROJCTCDT,
PROJCTCMB
) VALUES (
#{projctNam},
#{projctCol},
#{projctStr},
#{projctEnd},
#{projctDes},
#{projctArr},
#{projctDtl},
#{projctZip},
#{projctCdt},
#{projctCmb}
)
</insert>
<!-- 프로젝트 수정 -->
<update id="updateProject">
UPDATE netprojct
SET PROJCTNAM = #{projctNam},
PROJCTCOL = #{projctCol},
PROJCTARR = #{projctArr},
PROJCTDTL = #{projctDtl},
PROJCTZIP = #{projctZip},
PROJCTSTR = #{projctStr},
PROJCTEND = #{projctEnd},
PROJCTDES = #{projctDes},
PROJCTUDT = #{projctUdt},
PROJCTUMB = #{projctUmb}
WHERE PROJCTSEQ = #{projctSeq}
</update>
<!-- 프로젝트 등록 후 모든 사용자 자동 참여 -->
<insert id="insertProjectMember">
INSERT INTO promember (PROJCTSEQ, MEMBERSEQ, PROJCTYON)
SELECT #{projctSeq}, MEMBERSEQ, '1' FROM netmember;
</insert>
<!-- 프로젝트 참여 미참여 -->
<update id="updateProjectMember">
UPDATE promember
SET PROJCTYON = #{projctYon}
WHERE PROJCTSEQ = #{projctSeq}
AND MEMBERSEQ = #{memberSeq}
</update>
<!-- 프로젝트 멤버 조회 -->
<select id="selectProjectMembers" resultType="io.company.localhost.common.dto.MapDto">
SELECT pm.PROJCTSEQ,
pm.MEMBERSEQ,
pm.PROJCTYON,
nm.MEMBERNAM,
nm.MEMBERPRF,
nm.MEMBERCOL as usercolor
FROM promember pm
JOIN netmember nm ON pm.MEMBERSEQ = nm.MEMBERSEQ
WHERE pm.PROJCTSEQ = #{projctSeq}
</select>
<!-- 프로젝트 로그 조회 -->
<select id="selectProjectLog" parameterType="int" resultType="map">
SELECT
DATE_FORMAT(PROJCTCDT, '%Y-%m-%d %H:%i') as createDate,
PROJCTCMB as creator,
CASE
WHEN PROJCTUDT IS NOT NULL THEN DATE_FORMAT(PROJCTUDT, '%Y-%m-%d %H:%i')
ELSE NULL
END as updateDate,
PROJCTUMB as updater
FROM netprojct
WHERE PROJCTSEQ = #{projctSeq}
</select>
</mapper>