117 lines
3.8 KiB
XML
117 lines
3.8 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 AND c.CMNCODYNP = '1'
|
|
LEFT JOIN promember pm ON p.PROJCTSEQ = pm.PROJCTSEQ
|
|
WHERE 1=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>
|
|
<if test="excludeEnded != null and excludeEnded == 'true'">
|
|
AND (p.PROJCTEND IS NULL OR p.PROJCTEND > CURDATE())
|
|
</if>
|
|
ORDER BY p.PROJCTSTR 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>
|
|
|
|
<!-- 프로젝트 로그 조회 -->
|
|
<select id="selectProjectLog" parameterType="int" resultType="map">
|
|
SELECT logDate, logMessage
|
|
FROM (
|
|
-- 프로젝트 등록 로그
|
|
SELECT
|
|
DATE_FORMAT(p.PROJCTCDT, '%Y-%m-%d %H:%i') AS logDate,
|
|
CONCAT('[', m.MEMBERNAM, '] 프로젝트 등록') AS logMessage
|
|
FROM netprojct p
|
|
JOIN netmember m ON p.PROJCTCMB = m.MEMBERSEQ
|
|
WHERE p.PROJCTSEQ = #{projctSeq}
|
|
|
|
UNION ALL
|
|
|
|
-- 프로젝트 수정 로그
|
|
SELECT
|
|
DATE_FORMAT(p.PROJCTUDT, '%Y-%m-%d %H:%i') AS logDate,
|
|
CONCAT('[', m.MEMBERNAM, '] 프로젝트 수정') AS logMessage
|
|
FROM netprojct p
|
|
JOIN netmember m ON p.PROJCTUMB = m.MEMBERSEQ
|
|
WHERE p.PROJCTSEQ = #{projctSeq}
|
|
AND p.PROJCTUDT IS NOT NULL
|
|
) AS logs
|
|
ORDER BY logDate DESC;
|
|
</select>
|
|
|
|
<!-- 프로젝트 삭제 -->
|
|
<delete id="deleteProject" parameterType="int">
|
|
DELETE FROM netprojct WHERE PROJCTSEQ = #{projctSeq}
|
|
</delete>
|
|
|
|
|
|
</mapper>
|