Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/main/java/com/petmatz/api/chatting/ChatController.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import com.petmatz.domain.chatting.ChatMessageService;
import com.petmatz.domain.chatting.ChatRoomService;
import com.petmatz.domain.chatting.dto.ChatMessageInfo;
import com.petmatz.domain.user.service.UserService;
import com.petmatz.domain.user.info.UserInfo;
import com.petmatz.domain.user.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/match")
public class MatchingController {
public class ChatRoomController {

private final ChatRoomService chatRoomService;
private final JwtExtractProvider jwtExtractProvider;
Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/petmatz/api/global/ImageErrorApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.petmatz.api.global.dto.ImageErrorRequest;
import com.petmatz.api.global.dto.ImgType;
import com.petmatz.domain.pet.PetService;
//import com.petmatz.domain.user.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.petmatz.api.global.dto.Response;
import com.petmatz.common.exception.BaseErrorCode;
import com.petmatz.common.exception.ErrorReason;
import com.petmatz.domain.user.exception.UserErrorCode;
import com.petmatz.domain.user.exception.UserException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/com/petmatz/api/pet/PetController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@

import com.petmatz.api.global.dto.Response;
import com.petmatz.api.global.dto.S3ImgDataResponse;
import com.petmatz.api.pet.dto.PetRegisterNoRequest;
import com.petmatz.api.pet.dto.PetInfoResponse;
import com.petmatz.api.pet.dto.PetRegisterNoRequest;
import com.petmatz.api.pet.dto.PetRequest;
import com.petmatz.api.pet.dto.PetUpdateRequest;
import com.petmatz.common.security.jwt.JwtExtractProvider;
import com.petmatz.domain.global.S3ImgDataInfo;
import com.petmatz.domain.pet.PetService;
import com.petmatz.domain.pet.dto.OpenApiPetInfo;
import com.petmatz.domain.user.component.UserUtils;
import com.petmatz.domain.user.service.UserService;
import com.petmatz.domain.user.entity.User;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package com.petmatz.api.sosboard.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.petmatz.api.pet.dto.PetResponse;
import com.petmatz.domain.sosboard.PaymentType;
import com.petmatz.domain.sosboard.dto.LegercySosBoardInfo;
import com.petmatz.domain.sosboard.entity.PetSosBoard;
import com.petmatz.domain.sosboard.entity.SosBoard;
import com.petmatz.domain.sosboard.dto.LegercySosBoardInfo;

import java.time.LocalDateTime;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import com.fasterxml.jackson.annotation.JsonFormat;
import com.petmatz.api.pet.dto.PetResponse;
import com.petmatz.domain.sosboard.PaymentType;
import com.petmatz.domain.sosboard.dto.LegercySosBoardInfo;
import com.petmatz.domain.sosboard.dto.SosBoardCreateInfo;
import com.petmatz.domain.user.entity.User;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.petmatz.api.sosboard.dto;

import com.petmatz.domain.sosboard.dto.SosBoardInfoList;
import com.petmatz.domain.sosboard.dto.SosBoardPetInfo;
import lombok.Builder;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
package com.petmatz.api.sosboard.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.petmatz.domain.pet.entity.Pet;
import com.petmatz.domain.sosboard.PaymentType;
import com.petmatz.domain.sosboard.dto.SosBoardInfo;
import com.petmatz.domain.sosboard.dto.SosBoardPet;
import com.petmatz.domain.sosboard.entity.SosBoard;
import com.petmatz.domain.user.entity.User;
import lombok.Builder;

import java.time.LocalDateTime;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.fasterxml.jackson.annotation.JsonFormat;
import com.petmatz.domain.sosboard.PaymentType;
import com.petmatz.domain.sosboard.dto.SosBoardPetInfo;
import com.petmatz.domain.sosboard.dto.SpecificSosBoardInfo;
import lombok.Builder;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,14 @@

import com.petmatz.api.global.dto.Response;
import com.petmatz.api.user.request.CheckCertificationRequestDto;
import com.petmatz.api.user.request.DeleteIdRequestDto;
import com.petmatz.api.user.request.SignInRequestDto;
import com.petmatz.api.user.request.SignUpRequestDto;
import com.petmatz.domain.user.entity.User;
import com.petmatz.domain.user.response.*;
import com.petmatz.domain.user.response.SignInResponseDto;
import com.petmatz.domain.user.response.SignUpResponse;
import com.petmatz.domain.user.service.AuthService;
import com.petmatz.user.common.LogInResponseDto;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@

import com.petmatz.api.global.dto.Response;
import com.petmatz.api.user.request.EmailCertificationRequestDto;
import com.petmatz.domain.user.response.EmailCertificationResponseDto;
import com.petmatz.domain.user.service.EmailService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import com.petmatz.common.security.jwt.JwtManager;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseCookie;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.petmatz.domain.user.service.LocationService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

import com.petmatz.api.global.dto.Response;
import com.petmatz.api.user.request.EditMyProfileRequestDto;
import com.petmatz.domain.user.service.PageService;
import com.petmatz.domain.user.response.EditMyProfileResponseDto;
import com.petmatz.domain.user.response.GetMyProfileResponseDto;
import com.petmatz.domain.user.response.GetOtherProfileResponseDto;
import com.petmatz.domain.user.service.PageService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,9 @@
import com.petmatz.api.global.dto.Response;
import com.petmatz.api.user.request.RepasswordRequestDto;
import com.petmatz.api.user.request.SendRepasswordRequestDto;
import com.petmatz.domain.user.response.RepasswordResponseDto;
import com.petmatz.domain.user.response.SendRepasswordResponseDto;
import com.petmatz.domain.user.service.PasswordService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
import com.petmatz.api.global.dto.Response;
import com.petmatz.api.user.request.UpdateRecommendationRequestDto;
import com.petmatz.domain.user.response.GetRecommendationResponseDto;
import com.petmatz.domain.user.response.UpdateRecommendationResponseDto;
import com.petmatz.domain.user.service.RecommendService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ public class FailedAuthenticationEntryPoint implements AuthenticationEntryPoint

@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
System.out.println("request.getRequestURI() :: " + request.getRequestURI());
System.out.println("request.getQueryString() :: " + request.getQueryString());
response.setContentType("application/json");
response.setStatus(HttpServletResponse.SC_FORBIDDEN); // 403 ์ƒํƒœ ๋ฐ˜ํ™˜
response.getWriter().write("{\"code\":\"NP\",\"message\":\"No Permission.\"}"); // ์ธ์ฆ ์‹คํŒจ ๋ฉ”์‹œ์ง€
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

import com.petmatz.common.security.filter.JwtAuthenticationFilter;
import com.petmatz.common.security.handler.OAuthSuccessHandler;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Expand All @@ -14,17 +11,13 @@
import org.springframework.security.config.annotation.web.configurers.CsrfConfigurer;
import org.springframework.security.config.annotation.web.configurers.HttpBasicConfigurer;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

import java.io.IOException;

@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.petmatz.common.security.filter;

import com.petmatz.common.security.jwt.JwtManager;
import com.petmatz.common.security.jwt.JwtProvider;
import com.petmatz.domain.user.constant.LoginRole;
import com.petmatz.domain.user.entity.User;
import com.petmatz.domain.user.repository.UserRepository;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.petmatz.common.security.handler;

import com.petmatz.common.security.jwt.JwtManager;
import com.petmatz.common.security.jwt.JwtProvider;
import com.petmatz.domain.user.entity.CustomOAuthUser;
import com.petmatz.domain.user.entity.User;
import com.petmatz.domain.user.repository.UserRepository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.petmatz.common.security.jwt;

import com.petmatz.domain.user.repository.UserRepository;
import com.petmatz.infra.redis.component.RedisTokenComponent;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseCookie;
import org.springframework.stereotype.Component;

import javax.crypto.SecretKey;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.petmatz.domain.chatting;

import com.petmatz.api.chatting.dto.ChatReadStatusDirect;
import com.petmatz.domain.chatting.component.ChatMessageReader;
import com.petmatz.domain.chatting.component.ChatMessageUpdater;
import com.petmatz.domain.chatting.docs.ChatReadStatusDocs;
Expand All @@ -11,7 +10,6 @@
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
Expand Down
45 changes: 15 additions & 30 deletions src/main/java/com/petmatz/domain/chatting/ChatRoomService.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;

@Service
@RequiredArgsConstructor
Expand Down Expand Up @@ -48,41 +46,28 @@ public long createdChatRoom(ChatRoomInfo chatRoomInfo) {
return chatRoomId;
}

public List<ChatRoomMetaDataInfo> selectChatRoomList(int pageSize, int startPage, String userEmail) {
public List<ChatRoomMetaDataInfo> selectChatRoomList(int pageSize, int startPage, String accountId) {

List<UserToChatRoomEntity> chatRoomNumber = chatRoomReader.findChatRoomNumber(userEmail);
List<String> roomNumberList = chatRoomNumber.stream()
.map(chatRoomEntity -> String.valueOf(chatRoomEntity.getChatRoom().getId()))
.distinct()
.toList();
List<Long> chatRoomNumber = chatRoomReader.findChatRoomNumber(accountId);
List<UserToChatRoomEntity> userToChatRoomEntities = chatRoomReader.selectChatRoomUserList(chatRoomNumber, accountId);

Map<String, Integer> unreadCountList = updateMessageStatus(roomNumberList, userEmail, pageSize, startPage);
Map<String, IChatUserInfo> userList = getUserList(chatRoomNumber, userEmail);
Map<String, Integer> unreadCountList = updateMessageStatus(chatRoomNumber, accountId, pageSize, startPage);
Map<String, IChatUserInfo> userList = getUserList(userToChatRoomEntities, accountId);

return chatRoomMetaDataReader.findChatRoomMetaDataInfo(roomNumberList, unreadCountList, userList);
return chatRoomMetaDataReader.findChatRoomMetaDataInfo(chatRoomNumber, unreadCountList, userList);
}

private Map<String, IChatUserInfo> getUserList(List<UserToChatRoomEntity> chatRoomNumber, String userEmail) {
Map<String, IChatUserInfo> userList = new HashMap<>();

for (UserToChatRoomEntity userToChatRoomEntity : chatRoomNumber) {
String chatRoomId = userToChatRoomEntity.getChatRoom().getId().toString();

// ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์ŠคํŠธ๋ฆผ ์‚ฌ์šฉ
userToChatRoomEntity.getChatRoom().getParticipants().stream()
.filter(participant -> !participant.getUser().getAccountId().equals(userEmail))
.findFirst() // ์ฒซ ๋ฒˆ์งธ๋กœ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์‚ฌ์šฉ์ž ์ฐพ๊ธฐ
.ifPresent(participant -> {
IChatUserInfo userInfo = IChatUserInfo.of(participant.getUser());
userList.put(chatRoomId, userInfo);
});
}
return userList;
return chatRoomNumber.stream()
.collect(Collectors.toMap(
userToChatRoomEntity -> userToChatRoomEntity.getChatRoom().getId().toString(), // key: chatRoomId
userToChatRoomEntity -> IChatUserInfo.of(userToChatRoomEntity.getUser()) // value: IChatUserInfo
));
}

private Map<String, Integer> updateMessageStatus(List<String> chatRoomNumber,String userEmail, int pageSize, int startPage) {
private Map<String, Integer> updateMessageStatus(List<Long> chatRoomNumber,String userEmail, int pageSize, int startPage) {
Map<String, Integer> unreadCountList = new HashMap<>();
for (String roomId : chatRoomNumber) {
for (Long roomId : chatRoomNumber) {
String chatRoomId = String.valueOf(roomId);
ChatReadStatusDocs chatReadStatusDocs = chatReadStatusReader.selectChatMessageLastStatus(chatRoomId, userEmail);
LocalDateTime lastReadTimestamp = chatReadStatusDocs.checkLastReadTimestamp();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ public void init(ChatRoomInfo chatRoomInfo,long chatRoomID) {
ChatReadStatusDocs caregiverChatReadStatusDocs = createdChatReadStatusDocs(chatRoomInfo.caregiverInfo(),chatRoomID);
ChatReadStatusDocs entrustedChatReadStatusDocs = createdChatReadStatusDocs(chatRoomInfo.entrustedInfo(),chatRoomID);


mongoTemplate.save(caregiverChatReadStatusDocs);
mongoTemplate.save(entrustedChatReadStatusDocs);
mongoTemplate.save(chatRoomDocs);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ public class ChatRoomMetaDataReader {
private final MongoTemplate mongoTemplate;

//์ž๊ธฐ์ž์‹ ์ด ์†ํ•œ ์ฑ„ํŒ…๋ฐฉ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ „๋ถ€ ์กฐํšŒ ๋ฐ ํ•ด๋‹น ์ฑ„ํŒ…๋ฐฉ์˜ ์•ˆ์ฝ์€ ๋ฉ”์„ธ์ง€ ๊ฐฏ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์„œ ๋ฐ˜ํ™˜
public List<ChatRoomMetaDataInfo> findChatRoomMetaDataInfo(List<String> chatRoomNumbers, Map<String, Integer> unreadCountList, Map<String, IChatUserInfo> userList) {
Criteria criteria = Criteria.where("_id").in(chatRoomNumbers);
public List<ChatRoomMetaDataInfo> findChatRoomMetaDataInfo(List<Long> chatRoomNumbers, Map<String, Integer> unreadCountList, Map<String, IChatUserInfo> userList) {
List<String> chatNumberList = chatRoomNumbers.stream().map(Object::toString).toList();
Criteria criteria = Criteria.where("_id").in(chatNumberList);
Query query = new Query(criteria);

return mongoTemplate.find(query, ChatRoomMetadataDocs.class).stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,12 @@ public class ChatRoomReader {

//TODO ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•ด์•ผ ํ•จ.
//์ž๊ธฐ์ž์‹ ์ด ์†ํ•œ ์ฑ„ํŒ…๋ฐฉ์„ ์ „๋ถ€ ์กฐํšŒ
public List<UserToChatRoomEntity> findChatRoomNumber(String userEmail) {
Optional<List<UserToChatRoomEntity>> chatRoomEntities = userToChatRoomRepository.findByUser_AccountId(userEmail);
System.out.println(chatRoomEntities.get());
return chatRoomEntities.get();
public List<Long> findChatRoomNumber(String userEmail) {
return userToChatRoomRepository.findDistinctByUserAccountId(userEmail);
}

public List<UserToChatRoomEntity> selectChatRoomUserList(List<Long> chatRoomIdList, String accountId) {
return userToChatRoomRepository.selectChatRoomUserList(chatRoomIdList, accountId);
}

public Optional<ChatRoomEntity> selectChatRoom(ChatRoomInfo chatRoomInfo) {
Expand Down
Loading