localhost-back/src/main/resources/mapper/localvoteMapper.xml
khj0414 eb1c4a6961
All checks were successful
LOCALNET-DEV/pipeline/head This commit looks good
투표쿼리수정
2025-03-21 15:08:03 +09:00

106 lines
2.7 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.localvoteMapper">
<sql id="searchConditions">
<if test="voteset != null and voteset != ''">
<choose>
<when test='voteset == "1"'>
AND a.LOCVOTDDT IS NOT NULL
</when>
<when test='voteset == "2"'>
AND a.LOCVOTDDT IS NULL
AND a.LOCVOTDEL IS NULL
</when>
</choose>
</if>
</sql>
<insert id="insertVote" parameterType="map" useGeneratedKeys="true" keyProperty="voteId">
insert into localvote
(
LOCVOTREG
,LOCVOTRDT
,LOCVOTEDT
,LOCVOTTTL
,LOCVOTADD
,LOCVOTMUL
)
values
(
#{userId}
,now()
,#{endDate}
,#{title}
,#{addvoteIs}
,#{votemMltiIs}
)
</insert>
<select id="selectVoteList" parameterType="map">
SELECT * FROM (
SELECT
a.*,
DATE_FORMAT(a.LOCVOTRDT, '%Y-%m-%d %H:%i') AS formatted_LOCVOTRDT,
DATE_FORMAT(a.LOCVOTEDT, '%Y-%m-%d %H:%i') AS formatted_LOCVOTEDT,
b.MEMBERSEQ,
b.MEMBERNAM,
b.MEMBERCOL,
b.MEMBERPRF,
c.CMNCODNAM AS usercolor,
(SELECT COUNT(*) FROM votmember vm WHERE vm.LOCVOTSEQ = a.LOCVOTSEQ) AS total_votable,
(SELECT COUNT(*) FROM votrecord v WHERE v.LOCVOTSEQ = a.LOCVOTSEQ) AS total_voted,
CASE
WHEN EXISTS (
SELECT 1
FROM votrecord v
WHERE v.LOCVOTSEQ = a.LOCVOTSEQ
AND v.VOTRECMEM = #{userId}
) THEN 'Y'
ELSE 'N'
END AS myvoted
FROM
localvote a
LEFT JOIN
netmember b ON a.LOCVOTREG = b.MEMBERSEQ
LEFT JOIN
commoncod c ON b.MEMBERCOL = c.CMNCODVAL
WHERE
1=1
<include refid="searchConditions"/>
AND EXISTS (
SELECT 1 FROM votmember vm
WHERE vm.LOCVOTSEQ = a.LOCVOTSEQ
AND vm.MEMBERSEQ = #{userId}
)
) AS subquery
WHERE 1=1
<if test="myVote != null and myVote != ''">
<choose>
<when test='myVote == "1"' >
AND myvoted = 'Y'
</when>
</choose>
</if>
ORDER BY formatted_LOCVOTRDT DESC
</select>
<update id="updateEndData" parameterType="map">
UPDATE
localvote
SET
LOCVOTDDT = now()
WHERE LOCVOTSEQ = #{endVoteId}
</update>
<update id="updateDeleteData" parameterType="map">
UPDATE
localvote
SET
LOCVOTDEL = now()
WHERE LOCVOTSEQ = #{deleteVoteId}
</update>
<update id="updateRandomResult" parameterType="map">
UPDATE
localvote
SET
LOCVOTRES = #{LOCVOTCON}
WHERE LOCVOTSEQ = #{voteid}
</update>
</mapper>