118 lines
3.0 KiB
XML
118 lines
3.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.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'
|
|
AND LOCVOTDEL IS NULL
|
|
</when>
|
|
<when test='myVote == "2"' >
|
|
AND myvoted = 'N'
|
|
AND LOCVOTDEL IS NULL
|
|
</when>
|
|
</choose>
|
|
</if>
|
|
<choose>
|
|
<when test='myVote == "2"'>
|
|
ORDER BY LOCVOTEDT ASC, formatted_LOCVOTRDT DESC
|
|
</when>
|
|
<otherwise>
|
|
ORDER BY formatted_LOCVOTRDT DESC
|
|
</otherwise>
|
|
</choose>
|
|
</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>
|