125 lines
4.0 KiB
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>
|