diff --git a/src/main/java/io/company/localhost/controller/api/VoteBoardController.java b/src/main/java/io/company/localhost/controller/api/VoteBoardController.java index f33a200..3aa110c 100644 --- a/src/main/java/io/company/localhost/controller/api/VoteBoardController.java +++ b/src/main/java/io/company/localhost/controller/api/VoteBoardController.java @@ -36,12 +36,12 @@ public class VoteBoardController { @Member @ParameterCheck @GetMapping("getVoteList") - public ApiResponse> getVoteList(@AuthenticationPrincipal MemberVo memberVo,@ReqMap MapDto map) { + public ApiResponse> selectVoteList(@AuthenticationPrincipal MemberVo memberVo,@ReqMap MapDto map) { //userId Long userId = AuthUtil.getUser().getId(); map.put("userId", userId); - PageInfo VoteList = localvoteservice.getVoteList(map); + PageInfo VoteList = localvoteservice.selectVoteList(map); return ApiResponse.ok(VoteList); @@ -90,6 +90,16 @@ public class VoteBoardController { map.put("userId", userId); return ApiResponse.ok(localvoteservice.updateEndData(map)); } - + /** + * 투표 랜덤뽑기 + * @param randomList 랜덤리스트 ,voteid 투표 번호 + * @return + */ + @Member + @PostMapping("randomList") + public ApiResponse randomList(@ReqMap MapDto map) { + return ApiResponse.ok(localvoteservice.updateRandomResult(map)); + } + } diff --git a/src/main/java/io/company/localhost/controller/api/worddictController.java b/src/main/java/io/company/localhost/controller/api/worddictController.java index 606710d..3748e29 100644 --- a/src/main/java/io/company/localhost/controller/api/worddictController.java +++ b/src/main/java/io/company/localhost/controller/api/worddictController.java @@ -88,29 +88,13 @@ public class worddictController { return ApiResponse.ok( worddictyservice.getWordDetail(map)); } /** - * 용어집 카테고리 등록 - * @param CMNCODNAM 용어집 등록 카테고리 이름 - * @return - */ - @Member - @ParameterCheck - @PostMapping("insertCategory") - public ApiResponse insertCategory(@ReqMap MapDto map) { - Long result = commoncodservice.insertCategory(map); - if(result == -1) { - return ApiResponse.okMessage("이미 존재하는 카테고리명입니다."); - } - return ApiResponse.ok(result); - } - /** - * 용어 등록 - * @param WRDDICCAT 카테고리 코드값 ,WRDDICTTL 용어,WRDDICCON 내용 ,WRDDICRIK 링크 + * 용어 등록 - 카테고리 등록 + * @param WRDDICCAT 카테고리 코드값 ,WRDDICTTL 용어,WRDDICCON 내용 ,WRDDICRIK 링크 ,CMNCODNAM 추가 등록 카테고리 이름 * @return */ @Member @PostMapping("insertWord") public ApiResponse insertWord(@AuthenticationPrincipal MemberVo memberVo,@ReqMap MapDto map) { - //userId //Long userId = AuthUtil.getUser().getId(); //임시 diff --git a/src/main/java/io/company/localhost/mapper/VotDetailMapper.java b/src/main/java/io/company/localhost/mapper/VotDetailMapper.java index 6ec0e88..76b321d 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 getVoteDetails(int locvotSeq); + List selectVoteDetails(int locvotSeq); } diff --git a/src/main/java/io/company/localhost/mapper/VotMemberMapper.java b/src/main/java/io/company/localhost/mapper/VotMemberMapper.java index 4da7f8b..7879e48 100644 --- a/src/main/java/io/company/localhost/mapper/VotMemberMapper.java +++ b/src/main/java/io/company/localhost/mapper/VotMemberMapper.java @@ -11,7 +11,7 @@ public interface VotMemberMapper { void insertmem(MapDto map); - List getVoteMember(Integer locvotSeq); + List selectVoteMember(Integer locvotSeq); diff --git a/src/main/java/io/company/localhost/mapper/VotRecordMapper.java b/src/main/java/io/company/localhost/mapper/VotRecordMapper.java index a9ad991..29e28a4 100644 --- a/src/main/java/io/company/localhost/mapper/VotRecordMapper.java +++ b/src/main/java/io/company/localhost/mapper/VotRecordMapper.java @@ -7,7 +7,7 @@ import io.company.localhost.common.dto.MapDto; @Mapper public interface VotRecordMapper { - int yesVotetotal(MapDto map); + 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 9fa11b2..44ca86a 100644 --- a/src/main/java/io/company/localhost/mapper/VotchoiceMapper.java +++ b/src/main/java/io/company/localhost/mapper/VotchoiceMapper.java @@ -1,5 +1,7 @@ package io.company.localhost.mapper; +import java.util.List; + import org.apache.ibatis.annotations.Mapper; import io.company.localhost.common.dto.MapDto; @@ -9,4 +11,6 @@ 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 2d93447..07e9adc 100644 --- a/src/main/java/io/company/localhost/mapper/localvoteMapper.java +++ b/src/main/java/io/company/localhost/mapper/localvoteMapper.java @@ -13,9 +13,11 @@ public interface localvoteMapper { Long insertVote(MapDto map); - List getVoteList(MapDto map); + List selectVoteList(MapDto map); Long updateEndData(MapDto map); + Long updateRandomResult(MapDto selectedItem); + } diff --git a/src/main/java/io/company/localhost/service/commoncodService.java b/src/main/java/io/company/localhost/service/commoncodService.java index 06711ab..c0b1eb8 100644 --- a/src/main/java/io/company/localhost/service/commoncodService.java +++ b/src/main/java/io/company/localhost/service/commoncodService.java @@ -28,19 +28,11 @@ import lombok.RequiredArgsConstructor; public class commoncodService { private final commoncodMapper commoncodmapper; - + public List selectWordCategory() { return commoncodmapper.selectWordCategory(); } - public Long insertCategory(MapDto map) { - Long count = commoncodmapper.selectcheckCategoryExists(map); - if(count > 0) { - return -1L; - } - return commoncodmapper.insertCategory(map); - } - public List selectColorList(String type) { return commoncodmapper.selectColorList(type); } diff --git a/src/main/java/io/company/localhost/service/localvoteService.java b/src/main/java/io/company/localhost/service/localvoteService.java index e4ccbc5..3e4aa3c 100644 --- a/src/main/java/io/company/localhost/service/localvoteService.java +++ b/src/main/java/io/company/localhost/service/localvoteService.java @@ -2,12 +2,16 @@ package io.company.localhost.service; import java.util.ArrayList; import java.util.List; +import java.util.Random; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import io.company.localhost.common.dto.ApiResponse; import io.company.localhost.common.dto.MapDto; import io.company.localhost.mapper.VotDetailMapper; import io.company.localhost.mapper.VotMemberMapper; @@ -30,7 +34,6 @@ public class localvoteService { public Long insertVote(MapDto map) { Long result = 0L; - int voteIdInt = 0 ; if(map.get("voteId") != null) { voteIdInt = (int) map.get("voteId"); @@ -48,12 +51,11 @@ public class localvoteService { } return result; } - - public PageInfo getVoteList(MapDto map) { + public PageInfo selectVoteList(MapDto map) { //투표 목록조회 int page = map.getString("page") != null ? Integer.parseInt(map.getString("page")) : 1; PageHelper.startPage(page, 10); - PageInfo localvote = PageUtil.redefineNavigation(new PageInfo<>(localvotemapper.getVoteList(map),10)); + PageInfo localvote = PageUtil.redefineNavigation(new PageInfo<>(localvotemapper.selectVoteList(map),10)); List resultList = new ArrayList<>(); List voteList = localvote.getList(); @@ -63,15 +65,19 @@ public class localvoteService { voteMap.put("localVote", vote); Integer locvotSeq = (Integer) vote.get("LOCVOTSEQ"); //투표 항목조회 - List voteDetails = votdetailmapper.getVoteDetails(locvotSeq); + List voteDetails = votdetailmapper.selectVoteDetails(locvotSeq); //투표 가능 멤버 조회 - List voteMembers = votmembermapper.getVoteMember(locvotSeq); + 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.yesVotetotal(map); + int yesVotetotal = votrecordmapper.selectYesVotetotal(map); voteMap.put("yesVotetotal", yesVotetotal); resultList.add(voteMap); @@ -94,5 +100,23 @@ public class localvoteService { return localvotemapper.updateEndData(map); } + public Long updateRandomResult(MapDto map) { + + Long result = 0L; + ObjectMapper objectMapper = new ObjectMapper(); + Object randomListObj = map.get("randomList"); + if (randomListObj instanceof List) { + List rawList = (List) randomListObj; + if (!rawList.isEmpty()) { + //랜덤뽑기 + Object selectedObj = rawList.get(new Random().nextInt(rawList.size())); + MapDto selectedItem = objectMapper.convertValue(selectedObj, MapDto.class); + selectedItem.put("voteid", map.get("voteid")); + //투표결과 저장 + result = localvotemapper.updateRandomResult(selectedItem); + } + } + return result; + } } diff --git a/src/main/java/io/company/localhost/service/worddictyService.java b/src/main/java/io/company/localhost/service/worddictyService.java index c19987a..fddf11e 100644 --- a/src/main/java/io/company/localhost/service/worddictyService.java +++ b/src/main/java/io/company/localhost/service/worddictyService.java @@ -21,6 +21,7 @@ import java.util.List; import org.springframework.stereotype.Service; import io.company.localhost.common.dto.MapDto; +import io.company.localhost.mapper.commoncodMapper; import io.company.localhost.mapper.worddictyMapper; import lombok.RequiredArgsConstructor; @@ -29,6 +30,8 @@ import lombok.RequiredArgsConstructor; public class worddictyService { private final worddictyMapper worddictymapper; + private final commoncodMapper commoncodmapper; + public List getWordList(MapDto map) { List wordList = worddictymapper.getWordList(map); @@ -59,6 +62,10 @@ public class worddictyService { } public Long insertWord(MapDto map) { + + if (map.containsKey("CMNCODNAM") && map.get("CMNCODNAM") != null) { + commoncodmapper.insertCategory(map); + } return worddictymapper.insertWord(map); } diff --git a/src/main/resources/mapper/VotDetailMapper.xml b/src/main/resources/mapper/VotDetailMapper.xml index b933cbd..472a3e5 100644 --- a/src/main/resources/mapper/VotDetailMapper.xml +++ b/src/main/resources/mapper/VotDetailMapper.xml @@ -16,7 +16,7 @@ ) - select * from diff --git a/src/main/resources/mapper/VotMemberMapper.xml b/src/main/resources/mapper/VotMemberMapper.xml index ef68c2f..a9393cd 100644 --- a/src/main/resources/mapper/VotMemberMapper.xml +++ b/src/main/resources/mapper/VotMemberMapper.xml @@ -11,7 +11,7 @@ (#{voteId}, #{user.id}) - SELECT a.*, n.*, diff --git a/src/main/resources/mapper/VotRecordMapper.xml b/src/main/resources/mapper/VotRecordMapper.xml index 8e00221..16cf2e8 100644 --- a/src/main/resources/mapper/VotRecordMapper.xml +++ b/src/main/resources/mapper/VotRecordMapper.xml @@ -1,7 +1,7 @@ - select count(*) as yesvote from votrecord diff --git a/src/main/resources/mapper/VotchoiceMapper.xml b/src/main/resources/mapper/VotchoiceMapper.xml index 817a6b3..9838833 100644 --- a/src/main/resources/mapper/VotchoiceMapper.xml +++ b/src/main/resources/mapper/VotchoiceMapper.xml @@ -1,8 +1,7 @@ - - + INSERT INTO votchoice ( LOCVOTSEQ @@ -16,5 +15,21 @@ ) + diff --git a/src/main/resources/mapper/localvoteMapper.xml b/src/main/resources/mapper/localvoteMapper.xml index ad4af19..4766735 100644 --- a/src/main/resources/mapper/localvoteMapper.xml +++ b/src/main/resources/mapper/localvoteMapper.xml @@ -22,7 +22,7 @@ ,#{votemMltiIs} ) - select a.* ,DATE_FORMAT(a.LOCVOTRDT, '%Y-%m-%d %H:%i') AS formatted_LOCVOTRDT @@ -49,4 +49,11 @@ LOCVOTDDT = now() WHERE LOCVOTSEQ = #{endVoteId} + + UPDATE + localvote + SET + LOCVOTRES = #{LOCVOTCON} + WHERE LOCVOTSEQ = #{voteid} +