diff --git a/src/main/java/com/codingwasabi/bigtong/admin/repository/ChatRoomRepository.java b/src/main/java/com/codingwasabi/bigtong/admin/repository/ChatRoomRepository.java index caef6fb..e409b70 100644 --- a/src/main/java/com/codingwasabi/bigtong/admin/repository/ChatRoomRepository.java +++ b/src/main/java/com/codingwasabi/bigtong/admin/repository/ChatRoomRepository.java @@ -4,6 +4,7 @@ import com.codingwasabi.bigtong.admin.entity.RoomType; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface ChatRoomRepository extends JpaRepository { diff --git a/src/main/java/com/codingwasabi/bigtong/main/controller/AccountController.java b/src/main/java/com/codingwasabi/bigtong/main/controller/AccountController.java index d62cc44..6914708 100644 --- a/src/main/java/com/codingwasabi/bigtong/main/controller/AccountController.java +++ b/src/main/java/com/codingwasabi/bigtong/main/controller/AccountController.java @@ -1,12 +1,10 @@ package com.codingwasabi.bigtong.main.controller; +import com.codingwasabi.bigtong.main.dto.CurrentReturnDto; import com.codingwasabi.bigtong.main.service.AccountService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @Slf4j @RestController @@ -32,4 +30,14 @@ public String EnterSite(@RequestParam String name){ return "error/failed"; } + @GetMapping("/current") + public CurrentReturnDto returnCurrent(){ + return accountService.returnCurrent(); + } + + @DeleteMapping("/logout") + public boolean logout(@RequestParam String name){ + return accountService.deleteNickname(name); + } + } diff --git a/src/main/java/com/codingwasabi/bigtong/main/dto/CurrentReturnDto.java b/src/main/java/com/codingwasabi/bigtong/main/dto/CurrentReturnDto.java new file mode 100644 index 0000000..aad8e4b --- /dev/null +++ b/src/main/java/com/codingwasabi/bigtong/main/dto/CurrentReturnDto.java @@ -0,0 +1,15 @@ +package com.codingwasabi.bigtong.main.dto; + +import lombok.Builder; +import lombok.Data; +import lombok.Setter; + +@Data +@Setter +public class CurrentReturnDto { + private int FRUIT; + private int FISH; + private int VEGETABLE; + private int MEAT; + private int GRAIN; +} diff --git a/src/main/java/com/codingwasabi/bigtong/main/service/AccountService.java b/src/main/java/com/codingwasabi/bigtong/main/service/AccountService.java index 459cad1..42a9c23 100644 --- a/src/main/java/com/codingwasabi/bigtong/main/service/AccountService.java +++ b/src/main/java/com/codingwasabi/bigtong/main/service/AccountService.java @@ -3,7 +3,9 @@ import com.codingwasabi.bigtong.admin.entity.ChatRoom; import com.codingwasabi.bigtong.admin.repository.ChatRoomRepository; import com.codingwasabi.bigtong.main.Account; +import com.codingwasabi.bigtong.main.dto.CurrentReturnDto; import com.codingwasabi.bigtong.main.repository.AccountRepository; +import com.codingwasabi.bigtong.websocket.exception.AccountNotExistException; import com.codingwasabi.bigtong.websocket.message.ChatMessage; import com.codingwasabi.bigtong.websocket.message.MessageType; import com.codingwasabi.bigtong.websocket.service.ChatService; @@ -12,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.socket.WebSocketSession; +import java.util.List; import java.util.Map; @Service @@ -86,4 +89,39 @@ public void deleteAccount(String nickname,Map webSocket else accountRepository.deleteAccountByNickname(nickname); } + + public CurrentReturnDto returnCurrent(){ + List chatRoomList = chatRoomRepository.findAll(); + CurrentReturnDto currentReturnDto = new CurrentReturnDto(); + + for(ChatRoom chatRoom : chatRoomList){ + switch (chatRoom.getType()){ + case GRAIN : currentReturnDto.setGRAIN(chatRoom.getAccountList().size()); + break; + case FISH : currentReturnDto.setFISH(chatRoom.getAccountList().size()); + break; + case VEGETABLE : currentReturnDto.setVEGETABLE(chatRoom.getAccountList().size()); + break; + case MEAT : currentReturnDto.setMEAT(chatRoom.getAccountList().size()); + break; + case FRUIT : currentReturnDto.setFRUIT(chatRoom.getAccountList().size()); + break; + } + } + + return currentReturnDto; + } + + @Transactional + public boolean deleteNickname(String name){ + + try { + Account account = accountRepository.findByNickname(name).orElseThrow(AccountNotExistException::new); + }catch (AccountNotExistException a){ + return false; + } + + accountRepository.deleteAccountByNickname(name); + return true; + } }