diff --git a/src/main/java/io/company/localhost/mapper/VotDetailMapper.java b/src/main/java/io/company/localhost/mapper/VotDetailMapper.java index 76b321d..f3bafdc 100644 --- a/src/main/java/io/company/localhost/mapper/VotDetailMapper.java +++ b/src/main/java/io/company/localhost/mapper/VotDetailMapper.java @@ -11,6 +11,6 @@ public interface VotDetailMapper { Long insertdetail(MapDto map); - List selectVoteDetails(int locvotSeq); + List selectVoteDetailsResult(MapDto map); } diff --git a/src/main/java/io/company/localhost/mapper/VotRecordMapper.java b/src/main/java/io/company/localhost/mapper/VotRecordMapper.java index 29e28a4..7f07618 100644 --- a/src/main/java/io/company/localhost/mapper/VotRecordMapper.java +++ b/src/main/java/io/company/localhost/mapper/VotRecordMapper.java @@ -7,8 +7,6 @@ import io.company.localhost.common.dto.MapDto; @Mapper public interface VotRecordMapper { - int selectYesVotetotal(MapDto map); - Long insertCheckedNums(MapDto map); } diff --git a/src/main/java/io/company/localhost/mapper/VotchoiceMapper.java b/src/main/java/io/company/localhost/mapper/VotchoiceMapper.java index 44ca86a..b0940bf 100644 --- a/src/main/java/io/company/localhost/mapper/VotchoiceMapper.java +++ b/src/main/java/io/company/localhost/mapper/VotchoiceMapper.java @@ -1,7 +1,5 @@ package io.company.localhost.mapper; -import java.util.List; - import org.apache.ibatis.annotations.Mapper; import io.company.localhost.common.dto.MapDto; @@ -11,6 +9,5 @@ public interface VotchoiceMapper { void insertChoice(MapDto map); - List selectVoteResult(Integer locvotSeq); } diff --git a/src/main/java/io/company/localhost/mapper/localvoteMapper.java b/src/main/java/io/company/localhost/mapper/localvoteMapper.java index c9c871c..fb3b4bc 100644 --- a/src/main/java/io/company/localhost/mapper/localvoteMapper.java +++ b/src/main/java/io/company/localhost/mapper/localvoteMapper.java @@ -21,5 +21,7 @@ public interface localvoteMapper { Long updateDeleteData(MapDto map); + List selectVoteListWithDetails(MapDto map); + } diff --git a/src/main/java/io/company/localhost/service/localvoteService.java b/src/main/java/io/company/localhost/service/localvoteService.java index cb95106..cbcc217 100644 --- a/src/main/java/io/company/localhost/service/localvoteService.java +++ b/src/main/java/io/company/localhost/service/localvoteService.java @@ -55,39 +55,30 @@ public class localvoteService { int page = map.getString("page") != null ? Integer.parseInt(map.getString("page")) : 1; PageHelper.startPage(page, 10); PageInfo localvote = PageUtil.redefineNavigation(new PageInfo<>(localvotemapper.selectVoteList(map),10)); - List resultList = new ArrayList<>(); - + + List resultList = new ArrayList<>(); List voteList = localvote.getList(); - for (MapDto vote : voteList) { + for (MapDto vote : voteList) { MapDto voteMap = new MapDto(); voteMap.put("localVote", vote); Integer locvotSeq = (Integer) vote.get("LOCVOTSEQ"); - //투표 항목조회 - List voteDetails = votdetailmapper.selectVoteDetails(locvotSeq); - + //투표 항목조회 + 결과 조회 + 투표여부 + map.put("locvotSeq", locvotSeq); + List voteDetails = votdetailmapper.selectVoteDetailsResult(map); //투표 가능 멤버 조회 List voteMembers = votmembermapper.selectVoteMember(locvotSeq); - //투표 결과 조회 - List voteResult = votchoicemapper.selectVoteResult(locvotSeq); voteMap.put("voteDetails", voteDetails); voteMap.put("voteMembers", voteMembers); - voteMap.put("voteResult", voteResult); - - map.put("id",locvotSeq); - //투표 여부 - int yesVotetotal = votrecordmapper.selectYesVotetotal(map); - voteMap.put("yesVotetotal", yesVotetotal); - + resultList.add(voteMap); } localvote.setList(resultList); - return localvote; } - + public Long insertCheckedNums(MapDto map) { Long result = votrecordmapper.insertCheckedNums(map); if(result == 1) { diff --git a/src/main/resources/mapper/VotDetailMapper.xml b/src/main/resources/mapper/VotDetailMapper.xml index 472a3e5..74b3dcc 100644 --- a/src/main/resources/mapper/VotDetailMapper.xml +++ b/src/main/resources/mapper/VotDetailMapper.xml @@ -16,13 +16,23 @@ ) - + SELECT + d.*, + COALESCE(COUNT(c.VOTDETSEQ), 0) AS VOTE_COUNT, + (SELECT COUNT(*) + FROM votrecord + WHERE LOCVOTSEQ = d.LOCVOTSEQ + AND VOTRECMEM = #{userId}) AS yesvote + FROM + votdetail d + LEFT JOIN + votchoice c ON d.LOCVOTSEQ = c.LOCVOTSEQ AND d.VOTDETSEQ = c.VOTDETSEQ + WHERE + d.LOCVOTSEQ = #{locvotSeq} + GROUP BY + d.VOTDETSEQ, d.LOCVOTCON + ORDER BY + VOTE_COUNT DESC - diff --git a/src/main/resources/mapper/VotMemberMapper.xml b/src/main/resources/mapper/VotMemberMapper.xml index a9393cd..31600b3 100644 --- a/src/main/resources/mapper/VotMemberMapper.xml +++ b/src/main/resources/mapper/VotMemberMapper.xml @@ -13,8 +13,10 @@ - select count(*) as yesvote - from - votrecord - where - LOCVOTSEQ = #{id} - and - VOTRECMEM = #{userId} - INSERT INTO votrecord ( diff --git a/src/main/resources/mapper/VotchoiceMapper.xml b/src/main/resources/mapper/VotchoiceMapper.xml index 9838833..5b6dc01 100644 --- a/src/main/resources/mapper/VotchoiceMapper.xml +++ b/src/main/resources/mapper/VotchoiceMapper.xml @@ -15,21 +15,4 @@ ) - - diff --git a/src/main/resources/mapper/localvoteMapper.xml b/src/main/resources/mapper/localvoteMapper.xml index cc8ebab..acce4bb 100644 --- a/src/main/resources/mapper/localvoteMapper.xml +++ b/src/main/resources/mapper/localvoteMapper.xml @@ -40,7 +40,10 @@ 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.*, + b.MEMBERSEQ, + b.MEMBERNAM, + b.MEMBERCOL, + b.MEMBERPRF, c.CMNCODNAM AS usercolor, CASE WHEN EXISTS (