Skip to content

Commit 0d3f8d6

Browse files
[fix] Logout 시 chatStatus 도 false 로 자동 변환되는 코드 제거.
1 parent 14acff7 commit 0d3f8d6

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

src/main/java/org/dfbf/soundlink/domain/chat/service/ChatRoomService.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import lombok.RequiredArgsConstructor;
44
import lombok.extern.slf4j.Slf4j;
55
import org.dfbf.soundlink.domain.alert.dto.AlertChatRequest;
6-
import org.dfbf.soundlink.domain.alert.entity.Alert;
76
import org.dfbf.soundlink.domain.alert.service.AlertService;
87
import org.dfbf.soundlink.domain.blocklist.repository.BlockListRepository;
98
import org.dfbf.soundlink.domain.chat.dto.ChatRejectDto;
@@ -31,7 +30,6 @@
3130
import org.springframework.data.redis.core.RedisTemplate;
3231
import org.springframework.security.core.annotation.AuthenticationPrincipal;
3332
import org.springframework.stereotype.Service;
34-
import org.springframework.transaction.annotation.Transactional;
3533

3634
import java.sql.Timestamp;
3735
import java.time.Duration;
@@ -218,11 +216,11 @@ public ResponseResult createChatRoom(Long userId, Long recordId, String requestN
218216
if (chatRoomId.isPresent()) {
219217
Map<String, Object> map = new HashMap<>();
220218
map.put("chatRoomId", chatRoomId.get());
221-
219+
222220
// Alert alert = alertService.createAlert(requestUserId, "accept", map);
223221
// kafkaProducer.send(TOPIC, alert);
224222
alertService.send(requestUserId, "accept", map);
225-
223+
226224
return new ResponseResult(map);
227225
}
228226

@@ -241,6 +239,10 @@ public ResponseResult createChatRoom(Long userId, Long recordId, String requestN
241239

242240
ChatReqDto chatReqDto = new ChatReqDto(userId, responseUserId);
243241

242+
// 채팅 오픈 상태 보내기
243+
log.info("Setting chatting status to true for userId: {}", userId);
244+
userStatusService.setChatting(userId, true);
245+
244246
// 레디스에 저장
245247
redisTemplate.opsForValue().set("Room::" + chatRoom.getChatRoomId(), String.valueOf(chatReqDto));
246248

@@ -253,9 +255,6 @@ public ResponseResult createChatRoom(Long userId, Long recordId, String requestN
253255
// kafkaProducer.send(TOPIC, alert);
254256
alertService.send(requestUserId, "accept", map);
255257

256-
// 채팅 오픈 상태 보내기
257-
userStatusService.setChatting(userId, true);
258-
259258
return new ResponseResult(ErrorCode.SUCCESS, map);
260259

261260
} else {
@@ -282,12 +281,12 @@ public ResponseResult closeChatRoom(@AuthenticationPrincipal Long userId, Long c
282281
throw new UnauthorizedAccessException(); // 권한이 없을 경우 예외 발생
283282
}
284283

285-
// 채팅 완료 상태 보내기
286-
userStatusService.setChatting(userId, false);
287-
288284
chatRoom.updateChatRoomStatus(RoomStatus.CLOSED); // 삳태 '닫기'로 변경
289285
chatRoomRepository.save(chatRoom); // DB에 저장
290286

287+
// 채팅 종료 상태 보내기
288+
log.info("Setting chatting status to false for userId: {}", userId);
289+
userStatusService.setChatting(userId, false);
291290

292291
redisTemplate.delete("Room::"+chatRoomId); // 레디스에서 삭제
293292

src/main/java/org/dfbf/soundlink/domain/user/service/UserStatusService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public void saveUserStatus(UserStatusDto status) {
2323
try {
2424
String json = objectMapper.writeValueAsString(status);
2525
redisTemplate.opsForValue().set(key, json);
26+
log.info("User status updated: {}", status);
2627

2728
} catch (JsonProcessingException e) {
2829
log.error("유저 상태 저장 중 JsonProcessingException 오류: {}", e.getMessage());
@@ -56,7 +57,6 @@ public void setOnline(Long userId) {
5657
public void setOffline(Long userId) {
5758
UserStatusDto current = getUserStatus(userId);
5859
current.setOnline(false);
59-
current.setChatting(false); // 로그아웃하면 당연히 채팅도 종료
6060
current.setLastActive(System.currentTimeMillis());
6161
saveUserStatus(current);
6262
}

0 commit comments

Comments
 (0)