From cafa2f7c570654697a63078596627afed3fe56c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=9A=B0=ED=98=81?= <93671010+mr6208@users.noreply.github.com> Date: Fri, 9 Jan 2026 11:27:35 +0900 Subject: [PATCH 1/5] Test (#716) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#700) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#711) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {스크립트 버전 충돌로 인한 스크립트 이름 변경} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#714) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#700) (#710) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {스크립트 버전 충돌로 인한 스크립트 이름 변경} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * Test (#712) * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#700) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#711) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {스크립트 버전 충돌로 인한 스크립트 이름 변경} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {기존 스크립트 삭제(왜있는거지)} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * hotfix: 과거 스크립트 또 삭제 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> From b9e13325aaeb08a8564660277e19132d92891fe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=9A=B0=ED=98=81?= <93671010+mr6208@users.noreply.github.com> Date: Fri, 9 Jan 2026 11:47:27 +0900 Subject: [PATCH 2/5] Test (#718) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#700) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#711) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {스크립트 버전 충돌로 인한 스크립트 이름 변경} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#714) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#700) (#710) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {스크립트 버전 충돌로 인한 스크립트 이름 변경} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * Test (#712) * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#700) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#711) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {스크립트 버전 충돌로 인한 스크립트 이름 변경} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {기존 스크립트 삭제(왜있는거지)} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * hotfix: 과거 스크립트 또 삭제 * Mr6208/20260109 채팅방 응답데이터 리팩토링 (#717) * Test (#716) * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#700) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#711) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {스크립트 버전 충돌로 인한 스크립트 이름 변경} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#714) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#700) (#710) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {스크립트 버전 충돌로 인한 스크립트 이름 변경} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * Test (#712) * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#700) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * Mr6208/20251125 #646 대리인 및 의뢰인의 티켓팅 성공내역 생성 및 조회 기능 추가 (#711) * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 모듈 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 도메인 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 API 설계 및 명세 작성} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역생성 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역리스트업 기능 설계} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {flyway 관련 세팅 추가} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {코드리뷰 반영 및 성공내역 모듈 통일} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공양식 수락 로직 검증단계 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {성공내역 생성 트랜젝션 범위 재설정} https://github.com/Team-TicketMate/ticketmate-server/issues/646 * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {스크립트 버전 충돌로 인한 스크립트 이름 변경} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * 대리인_및_의뢰인의_티켓팅_성공내역_생성_및_조회_기능_추가 : feat : {기존 스크립트 삭제(왜있는거지)} https://github.com/Team-TicketMate/ticketmate-server/issues/646 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * hotfix: 과거 스크립트 또 삭제 --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> * 채팅방_응답데이터_리팩토링 : feat : {요구사항 반영} --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> --------- Co-authored-by: Baek Jihoon <133375485+Chuseok22@users.noreply.github.com> --- .../service/ChatMessageService.java | 61 +++++++++++++++---- 1 file changed, 49 insertions(+), 12 deletions(-) diff --git a/ticketmate-chat/src/main/java/com/ticketmate/backend/chat/application/service/ChatMessageService.java b/ticketmate-chat/src/main/java/com/ticketmate/backend/chat/application/service/ChatMessageService.java index c8e36a76..8a2cb548 100644 --- a/ticketmate-chat/src/main/java/com/ticketmate/backend/chat/application/service/ChatMessageService.java +++ b/ticketmate-chat/src/main/java/com/ticketmate/backend/chat/application/service/ChatMessageService.java @@ -34,6 +34,7 @@ import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Collections; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.UUID; @@ -102,13 +103,23 @@ public void acknowledgeRead(ReadAckRequest ack, Member reader, String chatRoomId String unReadRedisKey = UN_READ_MESSAGE_COUNTER_KEY.formatted(chatRoomId, reader.getMemberId()); redisTemplate.delete(unReadRedisKey); - // 채팅방 리스트에 즉시 갱신하기 위한 코드 + ChatMessage lastReadMessage = chatMessageRepository.findById(ack.getLastReadMessageId()) + .orElseThrow(() -> new CustomException(ErrorCode.MESSAGE_NOT_FOUND)); + + String preview = toPreview(lastReadMessage); + String formattedSendDate = formattingSendDate(TimeUtil.toLocalDateTime(lastReadMessage.getSendDate())); + rabbitTemplate.convertAndSend( "", chatRabbitMqProperties.unreadRoutingKey() + reader.getMemberId(), - Map.of("chatRoomId", chatRoomId, - "unReadMessageCount", 0, - "lastMessageId", ack.getLastReadMessageId()) + buildUnreadTopicPayload( + chatRoomId, + 0L, + lastReadMessage.getChatMessageId(), + lastReadMessage.getChatMessageType(), + preview, + formattedSendDate + ) ); ChatRoom chatRoom = chatRoomService.findChatRoomById(chatRoomId); @@ -275,14 +286,15 @@ private ChatMessage handleNewChatMessage(Member sender, ChatMessageRequest reque rabbitTemplate.convertAndSend( "", chatRabbitMqProperties.unreadRoutingKey() + chatRoomMemberId, - Map.of( - "chatRoomId", chatRoom.getChatRoomId(), - "unReadMessageCount", count, - "lastMessage", request.toPreview(), - "lastMessageType", request.getType(), - "sendDate", formattedSendDate, - "lastMessageId", message.getChatMessageId() - )); + buildUnreadTopicPayload( + chatRoom.getChatRoomId(), + count, + message.getChatMessageId(), + request.getType(), + request.toPreview(), + formattedSendDate + ) + ); } return message; } @@ -429,4 +441,29 @@ private void updateLastMessageInfo(ChatRoom chatRoom, ChatMessage chatMessage, S chatRoom.updateLastMessageType(chatMessage.getChatMessageType()); } + + private Map buildUnreadTopicPayload(String chatRoomId, long unReadMessageCount, String lastMessageId, + ChatMessageType lastMessageType, String lastMessage, String sendDate + ) { + Map payload = new LinkedHashMap<>(); + payload.put("lastMessageId", lastMessageId); + payload.put("lastMessageType", lastMessageType); + payload.put("unReadMessageCount", unReadMessageCount); + payload.put("chatRoomId", chatRoomId); + payload.put("lastMessage", lastMessage == null ? "" : lastMessage); + payload.put("sendDate", sendDate == null ? "" : sendDate); + return payload; + } + + + private String toPreview(ChatMessage chatMessage) { + return switch (chatMessage.getChatMessageType()) { + case TEXT -> nvl(chatMessage.getMessage(), ""); + case PICTURE -> ChatMessageType.PICTURE.getDescription(); + case FULFILLMENT_FORM -> ChatMessageType.FULFILLMENT_FORM.getDescription(); + case ACCEPTED_FULFILLMENT_FORM -> ChatMessageType.ACCEPTED_FULFILLMENT_FORM.getDescription(); + case REJECTED_FULFILLMENT_FORM -> ChatMessageType.REJECTED_FULFILLMENT_FORM.getDescription(); + case UPDATE_FULFILLMENT_FORM -> ChatMessageType.UPDATE_FULFILLMENT_FORM.getDescription(); + }; + } } \ No newline at end of file From 56843e742b0d5605f625bccd5ec222f7d90f6622 Mon Sep 17 00:00:00 2001 From: Yooonjeong Date: Mon, 12 Jan 2026 19:56:02 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=ED=95=98=EC=9D=B4=EB=B8=8C=EB=A6=AC?= =?UTF-8?q?=EB=93=9C=5F=EA=B2=80=EC=83=89=5F=EA=B2=B0=EA=B3=BC=5F=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=EC=84=B1=5F=ED=95=84=ED=84=B0=EB=A7=81=5F=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=5F=EA=B0=9C=EC=84=A0=20:=20feat=20:=20embeddings=20?= =?UTF-8?q?=EC=BA=90=EC=8B=B1=20=EC=A0=9C=EA=B1=B0=20https://github.com/Te?= =?UTF-8?q?am-TicketMate/ticketmate-server/issues/713?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/VertexAiEmbeddingService.java | 34 +++++++------------ 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/ticketmate-ai/src/main/java/com/ticketmate/backend/ai/application/service/VertexAiEmbeddingService.java b/ticketmate-ai/src/main/java/com/ticketmate/backend/ai/application/service/VertexAiEmbeddingService.java index e1143749..d1cefc61 100644 --- a/ticketmate-ai/src/main/java/com/ticketmate/backend/ai/application/service/VertexAiEmbeddingService.java +++ b/ticketmate-ai/src/main/java/com/ticketmate/backend/ai/application/service/VertexAiEmbeddingService.java @@ -40,23 +40,13 @@ public class VertexAiEmbeddingService { * @param embeddingType CONCERT, AGENT, SEARCH */ @Transactional - @Caching( - cacheable = @Cacheable( - value = "embeddings", - key = "T(com.ticketmate.backend.common.core.util.CommonUtil)" - + ".normalizeAndRemoveSpecialCharacters(#text)" - + "+':' + #embeddingType", - condition = "#targetId == null", - unless = "#result == null" - ) - ) public Embedding fetchOrGenerateEmbedding(UUID targetId, String text, EmbeddingType embeddingType) { // 텍스트 정규화 String normalizeText = CommonUtil.normalizeAndRemoveSpecialCharacters(text); // 검색 모드: 캐시나 DB 조회 후 없으면 생성 return embeddingRepository.findByTextAndEmbeddingType(normalizeText, embeddingType) - .orElseGet(() -> createAndSaveEmbedding(targetId, normalizeText, embeddingType)); + .orElseGet(() -> createAndSaveEmbedding(targetId, normalizeText, embeddingType)); } /** @@ -67,11 +57,11 @@ private Embedding createAndSaveEmbedding(UUID targetId, String normalizedText, E float[] vector = extractVector(generateEmbedding(normalizedText)); return embeddingRepository.save(Embedding.builder() - .targetId(targetId) - .text(normalizedText) - .embeddingVector(vector) - .embeddingType(type) - .build()); + .targetId(targetId) + .text(normalizedText) + .embeddingVector(vector) + .embeddingType(type) + .build()); } /** @@ -83,9 +73,9 @@ private Embedding createAndSaveEmbedding(UUID targetId, String normalizedText, E private EmbedContentResponse generateEmbedding(String text) { try { return genAiClient.models.embedContent( - googleGenAIProperties.model(), - text, - EmbedContentConfig.builder().build() + googleGenAIProperties.model(), + text, + EmbedContentConfig.builder().build() ); } catch (ClientException e) { log.error("Vertex AI 임베딩 API 호출 실패: {}", e.getMessage()); @@ -101,9 +91,9 @@ private EmbedContentResponse generateEmbedding(String text) { */ private float[] extractVector(EmbedContentResponse response) { List embeddingValues = response.embeddings() - .flatMap(list -> list.stream().findFirst()) - .flatMap(ContentEmbedding::values) - .orElseThrow(() -> new CustomException(ErrorCode.EMBEDDING_DATA_NOT_FOUND)); + .flatMap(list -> list.stream().findFirst()) + .flatMap(ContentEmbedding::values) + .orElseThrow(() -> new CustomException(ErrorCode.EMBEDDING_DATA_NOT_FOUND)); int size = embeddingValues.size(); float[] vector = new float[size]; for (int i = 0; i < size; i++) { From f54fd0c9350f03c30672de0ed4957a4e166ecb47 Mon Sep 17 00:00:00 2001 From: Yooonjeong Date: Mon, 12 Jan 2026 19:56:27 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=ED=95=98=EC=9D=B4=EB=B8=8C=EB=A6=AC?= =?UTF-8?q?=EB=93=9C=5F=EA=B2=80=EC=83=89=5F=EA=B2=B0=EA=B3=BC=5F=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=EC=84=B1=5F=ED=95=84=ED=84=B0=EB=A7=81=5F=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=5F=EA=B0=9C=EC=84=A0=20:=20refactor=20:=20indent=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20https://github.com/Team-TicketMate/ticketm?= =?UTF-8?q?ate-server/issues/713?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/SearchRepositoryImpl.java | 128 +++++++++--------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/ticketmate-search/src/main/java/com/ticketmate/backend/search/infrastructure/repository/SearchRepositoryImpl.java b/ticketmate-search/src/main/java/com/ticketmate/backend/search/infrastructure/repository/SearchRepositoryImpl.java index d561f08d..abb1d3b3 100644 --- a/ticketmate-search/src/main/java/com/ticketmate/backend/search/infrastructure/repository/SearchRepositoryImpl.java +++ b/ticketmate-search/src/main/java/com/ticketmate/backend/search/infrastructure/repository/SearchRepositoryImpl.java @@ -50,44 +50,44 @@ public List findConcertDetailsByIds(List concertIds) { return Collections.emptyList(); } return queryFactory - .select(Projections.constructor(ConcertSearchInfo.class, - CONCERT.concertId, - CONCERT.concertName, - CONCERT_HALL.concertHallName, - // 선예매 오픈일 - Expressions.dateTimeTemplate( - Instant.class, - "min({0})", - new CaseBuilder() - .when(TICKET_OPEN_DATE.ticketOpenType.eq(TicketOpenType.PRE_OPEN)) - .then(TICKET_OPEN_DATE.openDate) - .otherwise((Instant) null) - ).as("ticketPreOpenDate"), - // 일반 예매 오픈일 - Expressions.dateTimeTemplate( - Instant.class, - "min({0})", - new CaseBuilder() - .when(TICKET_OPEN_DATE.ticketOpenType.eq(TicketOpenType.GENERAL_OPEN)) - .then(TICKET_OPEN_DATE.openDate) - .otherwise((Instant) null) - ).as("ticketGeneralOpenDate"), - CONCERT_DATE.performanceDate.min().as("startDate"), - CONCERT_DATE.performanceDate.max().as("endDate"), - CONCERT.concertThumbnailStoredPath, - Expressions.constant(0.0) - )) - .from(CONCERT) - .leftJoin(CONCERT.concertHall, CONCERT_HALL) - .join(CONCERT_DATE).on(CONCERT.eq(CONCERT_DATE.concert)) - .join(TICKET_OPEN_DATE).on(CONCERT.eq(TICKET_OPEN_DATE.concert)) - .where(CONCERT.concertId.in(concertIds)) - .groupBy(CONCERT.concertId, - CONCERT.concertName, - CONCERT_HALL.concertHallName, - CONCERT.concertThumbnailStoredPath - ) - .fetch(); + .select(Projections.constructor(ConcertSearchInfo.class, + CONCERT.concertId, + CONCERT.concertName, + CONCERT_HALL.concertHallName, + // 선예매 오픈일 + Expressions.dateTimeTemplate( + Instant.class, + "min({0})", + new CaseBuilder() + .when(TICKET_OPEN_DATE.ticketOpenType.eq(TicketOpenType.PRE_OPEN)) + .then(TICKET_OPEN_DATE.openDate) + .otherwise((Instant) null) + ).as("ticketPreOpenDate"), + // 일반 예매 오픈일 + Expressions.dateTimeTemplate( + Instant.class, + "min({0})", + new CaseBuilder() + .when(TICKET_OPEN_DATE.ticketOpenType.eq(TicketOpenType.GENERAL_OPEN)) + .then(TICKET_OPEN_DATE.openDate) + .otherwise((Instant) null) + ).as("ticketGeneralOpenDate"), + CONCERT_DATE.performanceDate.min().as("startDate"), + CONCERT_DATE.performanceDate.max().as("endDate"), + CONCERT.concertThumbnailStoredPath, + Expressions.constant(0.0) + )) + .from(CONCERT) + .leftJoin(CONCERT.concertHall, CONCERT_HALL) + .join(CONCERT_DATE).on(CONCERT.eq(CONCERT_DATE.concert)) + .join(TICKET_OPEN_DATE).on(CONCERT.eq(TICKET_OPEN_DATE.concert)) + .where(CONCERT.concertId.in(concertIds)) + .groupBy(CONCERT.concertId, + CONCERT.concertName, + CONCERT_HALL.concertHallName, + CONCERT.concertThumbnailStoredPath + ) + .fetch(); } /** @@ -102,20 +102,20 @@ public List findAgentDetailsByIds(List agentIds) { return Collections.emptyList(); } return queryFactory - .select(Projections.constructor(AgentSearchInfo.class, - MEMBER.memberId, - MEMBER.nickname, - MEMBER.profileImgStoredPath, - PORTFOLIO.portfolioDescription, - AGENT_PERFORMANCE_SUMMARY.averageRating, - AGENT_PERFORMANCE_SUMMARY.reviewCount, - Expressions.constant(0.0) - )) - .from(MEMBER) - .leftJoin(PORTFOLIO).on(PORTFOLIO.member.eq(MEMBER)) - .innerJoin(AGENT_PERFORMANCE_SUMMARY).on(MEMBER.eq(AGENT_PERFORMANCE_SUMMARY.agent)) - .where(MEMBER.memberId.in(agentIds)) - .fetch(); + .select(Projections.constructor(AgentSearchInfo.class, + MEMBER.memberId, + MEMBER.nickname, + MEMBER.profileImgStoredPath, + PORTFOLIO.portfolioDescription, + AGENT_PERFORMANCE_SUMMARY.averageRating, + AGENT_PERFORMANCE_SUMMARY.reviewCount, + Expressions.constant(0.0) + )) + .from(MEMBER) + .leftJoin(PORTFOLIO).on(PORTFOLIO.member.eq(MEMBER)) + .innerJoin(AGENT_PERFORMANCE_SUMMARY).on(MEMBER.eq(AGENT_PERFORMANCE_SUMMARY.agent)) + .where(MEMBER.memberId.in(agentIds)) + .fetch(); } /** @@ -129,21 +129,21 @@ public List findAgentDetailsByIds(List agentIds) { public List findAgentIdsByKeyword(String keyword, int limit) { // 동적 WHERE 절 조합 BooleanExpression whereClause = QueryDslUtil.allOf( - MEMBER.memberType.eq(MemberType.AGENT), - QueryDslUtil.anyOf( - QueryDslUtil.likeIgnoreCase(MEMBER.nickname, keyword), - QueryDslUtil.likeIgnoreCase(PORTFOLIO.portfolioDescription, keyword) - ) + MEMBER.memberType.eq(MemberType.AGENT), + QueryDslUtil.anyOf( + QueryDslUtil.likeIgnoreCase(MEMBER.nickname, keyword), + QueryDslUtil.likeIgnoreCase(PORTFOLIO.portfolioDescription, keyword) + ) ); return queryFactory - .select(MEMBER.memberId) - .from(MEMBER) - .innerJoin(PORTFOLIO) - .on((PORTFOLIO.member).eq(MEMBER)) - .where(whereClause) - .limit(limit) - .fetch(); + .select(MEMBER.memberId) + .from(MEMBER) + .innerJoin(PORTFOLIO) + .on((PORTFOLIO.member).eq(MEMBER)) + .where(whereClause) + .limit(limit) + .fetch(); } /** From b5d43b3ad384c601a3973dd4fbd396650ca05842 Mon Sep 17 00:00:00 2001 From: Yooonjeong Date: Mon, 12 Jan 2026 19:57:02 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=ED=95=98=EC=9D=B4=EB=B8=8C=EB=A6=AC?= =?UTF-8?q?=EB=93=9C=5F=EA=B2=80=EC=83=89=5F=EA=B2=B0=EA=B3=BC=5F=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=EC=84=B1=5F=ED=95=84=ED=84=B0=EB=A7=81=5F=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=5F=EA=B0=9C=EC=84=A0=20:=20feat=20:=20=EC=9E=84?= =?UTF-8?q?=EB=B2=A0=EB=94=A9=20=EA=B2=80=EC=83=89=20=EC=BF=BC=EB=A6=AC?= =?UTF-8?q?=EC=97=90=20=EA=B1=B0=EB=A6=AC=200.9=20=EC=9D=B4=ED=95=98=20?= =?UTF-8?q?=EC=9E=84=EA=B3=84=EA=B0=92=20=EC=B6=94=EA=B0=80=20https://gith?= =?UTF-8?q?ub.com/Team-TicketMate/ticketmate-server/issues/713?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/infrastructure/repository/EmbeddingRepository.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ticketmate-ai/src/main/java/com/ticketmate/backend/ai/infrastructure/repository/EmbeddingRepository.java b/ticketmate-ai/src/main/java/com/ticketmate/backend/ai/infrastructure/repository/EmbeddingRepository.java index 8df7861b..45f2cb1b 100644 --- a/ticketmate-ai/src/main/java/com/ticketmate/backend/ai/infrastructure/repository/EmbeddingRepository.java +++ b/ticketmate-ai/src/main/java/com/ticketmate/backend/ai/infrastructure/repository/EmbeddingRepository.java @@ -25,6 +25,7 @@ public interface EmbeddingRepository extends JpaRepository { */ @Query(value = "SELECT target_id FROM embedding e " + "WHERE e.embedding_type = 'CONCERT' " + + "AND (e.embedding_vector <-> CAST(:vector AS vector)) <= 0.90 " + "AND EXISTS " + "(SELECT 1 FROM ticket_open_date t " + "JOIN concert c ON t.concert_concert_id = c.concert_id " @@ -43,6 +44,7 @@ public interface EmbeddingRepository extends JpaRepository { */ @Query(value = "SELECT target_id FROM embedding " + "WHERE embedding_type = 'AGENT' " + + "AND (embedding_vector <-> CAST(:vector AS vector)) <= 0.90 " + "ORDER BY embedding_vector <-> CAST(:vector AS vector) LIMIT :limit", nativeQuery = true) List findNearestAgentEmbeddings(@Param("vector") float[] vector, @Param("limit") int limit);