Skip to content

Commit

Permalink
Merge pull request #122 from Menjil-Menjil/chore-chat
Browse files Browse the repository at this point in the history
Chore chat(협업 진행시 일부 수정 및 추가한 내용)
  • Loading branch information
megymj authored Oct 23, 2023
2 parents 53cf17c + af050cc commit a5ef901
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ public void enter(@DestinationVariable("roomId") String roomId,
case AI_SELECT:
case AI_SUMMARY:
case AI_SUMMARY_ANSWER:
case AI_SUMMARY_RATING:
case AI_C_RATING:
// 2. Send Client's Chat Message
sendSuccessResponse(roomId, SuccessCode.MESSAGE_SEND_SUCCESS, (MessageResponse) result);
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import seoultech.capstone.menjil.domain.chat.dao.MessageRepository;
import seoultech.capstone.menjil.domain.chat.dao.QaListRepository;
import seoultech.capstone.menjil.domain.chat.domain.QaList;
import seoultech.capstone.menjil.domain.chat.dto.request.MessageClickIncViewsAndLikesRequest;
Expand All @@ -15,6 +16,7 @@
@Service
public class MessageRatingService {

private final MessageRepository messageRepository;
private final QaListRepository qaListRepository;

public MessageClickIncViewsAndLikesResponse incrementViewsAndLikes(MessageClickIncViewsAndLikesRequest request) {
Expand All @@ -25,6 +27,9 @@ public MessageClickIncViewsAndLikesResponse incrementViewsAndLikes(MessageClickI
// 변경된 내용 저장: Spring Data MongoDB는 dirty checking이 없다.
qaListRepository.save(qaList);

// 평가 이후 AI_SUMMARY_RATING 메시지 제거
messageRepository.deleteById(request.getId());

return MessageClickIncViewsAndLikesResponse.of(qaList.get_id(),
qaList.getViews(), qaList.getLikes());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -182,20 +182,20 @@ private ChatMessage createLambdaChatMessage(String roomId,
String message4th = "AI 챗봇을 종료하고 멘토 답변 기다리기";
LocalDateTime now = getCurrentTimeWithNanos();

int initialSize = awsLambdaResponses.size();
int questionMaxSize = 3;

// TODO: 프론트 요청에 따라 이 부분 사용하지 않기로 결정됨. 추후 이견이 없을 경우 아래 주석 삭제
// int initialSize = awsLambdaResponses.size();
// int questionMaxSize = 3;
// 첫 번째 메시지 추가 (만약 리스트가 비어 있을 경우)
if (initialSize == 0) {
awsLambdaResponses.add(AwsLambdaResponse.of(null,
messageRequest.getSenderNickname()
+ "님의 질문과 유사도가 높은 대화 목록이 존재하지 않습니다", null, null));
initialSize++;
}
// 필요한 만큼 빈 메시지 추가
IntStream.range(initialSize, questionMaxSize)
.mapToObj(i -> AwsLambdaResponse.of(null, null, null, null))
.forEach(awsLambdaResponses::add);
// if (initialSize == 0) {
// awsLambdaResponses.add(AwsLambdaResponse.of(null,
// messageRequest.getSenderNickname()
// + "님의 질문과 유사도가 높은 대화 목록이 존재하지 않습니다", null, null));
// initialSize++;
// }
// // 필요한 만큼 빈 메시지 추가
// IntStream.range(initialSize, questionMaxSize)
// .mapToObj(i -> AwsLambdaResponse.of(null, null, null, null))
// .forEach(awsLambdaResponses::add);
// 4번째 응답 추가(공통)
awsLambdaResponses.add(AwsLambdaResponse.of(null, message4th, null, null));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public interface QaListRepository extends MongoRepository<QaList, String> {

@Query(value = "{'mentor_nickname' : ?0, 'answer' : { '$ne' : null } }",
fields = "{ 'question_origin' : 1, 'question_summary' : 1, " +
"'answer' : 1, 'answer_time': 1 }")
"'answer' : 1, 'answer_time': 1, 'views': 1, 'likes': 1 }")
List<QaList> findQuestionAndAnswerWithMentorNickname(String mentorNickname, Sort sort);

Long countByMentorNicknameAndAnswerIsNotNull(String mentorNickname);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ public enum MessageType {
*/
ENTER,
C_QUESTION,
AI_QUESTION_RESPONSE, AI_SUMMARY_LIST, AI_SELECT, AI_SUMMARY, AI_SUMMARY_ANSWER,
AI_QUESTION_RESPONSE, AI_SUMMARY_LIST, AI_SELECT, AI_SUMMARY, AI_SUMMARY_ANSWER, AI_SUMMARY_RATING,
AI_C_RATING,
TALK,
TYPE_NOT_EXISTS;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
@AllArgsConstructor
public class MessageClickIncViewsAndLikesRequest {

@NotBlank
private String Id;

@NotBlank
private String questionId;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,14 @@ public FollowingMentorInfoResponse getFollowMentorInfo(String nickname, String f
Long answersCount = qaListRepository.countByMentorNicknameAndAnswerIsNotNull(followNickname);

// 3. 작성 질문/답변 목록 리스트
// TODO: 조회수, 좋아요 추가
Sort sort = Sort.by(Sort.Order.asc("answer_time"));
List<FollowingQaDto> followingQaDtos = qaListRepository.findQuestionAndAnswerWithMentorNickname(followNickname, sort)
.stream()
.map(q -> new FollowingQaDto(q.getQuestionOrigin(), q.getQuestionSummary(),
q.getAnswer(), q.getAnswerTime()))
q.getAnswer(), q.getAnswerTime(), q.getViews(), q.getLikes()))
.collect(Collectors.toList());

// TODO: 4. 추천 답변 개수
// TODO: 5. 멘토링 후기

return FollowingMentorInfoResponse.of(followingUserInfoDto, answersCount, followingQaDtos);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ public class FollowingQaDto {

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul")
private LocalDateTime answerTime;

private Long views;
private Long likes;
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ class MessageRatingServiceTest {
private final Long DEFAULT_VALUE = 0L;
private String DOCUMENT_ID = "";

// TODO: 추후 테스트 코드 수정 예정
/*
@BeforeEach
void setUp() {
LocalDateTime now = LocalDateTime.now();
Expand Down Expand Up @@ -109,4 +111,5 @@ void incrementViewsAndLikes_no_likes() {
assertThat(response.getLikes()).isEqualTo(DEFAULT_VALUE);
}
*/
}

0 comments on commit a5ef901

Please sign in to comment.