Closed xcelxlorx closed 11 months ago
별점api관련해서는 회의시간 때 이야기 해보면 좋을 것 같습니다.
5주차에는 포함시키지 않고 6주차로 넘기겠습니다~
conflict 해결 후 수정 사항 반영했습니다. 확인 부탁드립니다!
쿼리 테스트 도중 참여기록 조회 api에서 주소 정보가 추가 쿼리 발생하는 걸 확인했습니다. 찾아보다가 해결법 바로 찾아서 주소 정보를 join fetch 하도록 브랜치 위에 커밋 하나 추가하였습니다.
수정 완료했습니다. 확인 부탁드립니다!
Summary
위의 api를 구현했습니다.
Description
유저 기록 조회
참여 기록 조회
조건 파라미터가 많다 보니 보내야 하는 쿼리 종류가 30개 이상이라서 동적 쿼리를 사용했습니다. jpa specification로 구현했고 실무에서는 잘 사용하지 않는다고 합니다.
양방향을 사용하지 않고 자바 코드로 구현하려고 하다보니 <post.id, List> 형태의 map을 넘겨주게 되었습니다.
하다보니 코드 양이 길어졌습니닷.. 😓 잘못된 로직이 있다면 말씀해주세요.
대충 테스트 데이터
INSERT INTO user_tb (name, email, password, district_id, role) VALUES ('김볼링', 'test@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('볼링볼링', 'test1@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('박볼', 'test3@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링링', 'test4@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('볼링링', 'test5@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼', 'test6@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링륑', 'test7@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('주주', 'test8@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('son', 'test9@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼2', 'test10@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('볼링링1', 'test11@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('볼스', 'test12@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링2', 'test13@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링3', 'test14@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링4', 'test15@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링5', 'test16@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링6', 'test17@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링7', 'test18@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링8', 'test19@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링9', 'test20@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링10', 'test21@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링11', 'test22@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링12', 'test23@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링13', 'test24@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링14', 'test25@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'), ('김볼링링15', 'test26@test.com', '{bcrypt}$2a$10$yK46P9/7TyA2J4z69uEEhOdInb6a7lgHNWVfqftsQSwvLgwSZv9Mq', 1, 'ROLE_USER'); INSERT INTO post_tb (title, user_id, district_id, start_time, due_time, content, is_close) VALUES ('불금 볼링 점수 내기 하실 분~', 1, 469, '2023-09-01', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 1, 469, '2023-09-01', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 1, 469, '2023-09-08', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 1, 469, '2023-09-08', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 1, 469, '2023-08-05', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 2, 3, '2023-09-01', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 2, 4, '2023-09-01', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 2, 4, '2023-09-01', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 2, 4, '2023-08-01', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 2, 1, '2023-09-01', '2023-11-29', '볼링 점수 내기합시다.', false), ('불금 볼링 점수 내기 하실 분~', 3, 1, '2023-10-01', '2023-11-29', '볼링 점수 내기합시다.', true), ('불금 볼링 점수 내기 하실 분~', 3, 1, '2023-08-01', '2023-11-29', '볼링 점수 내기합시다.', true), ('불금 볼링 점수 내기 하실 분~', 3, 1, '2023-08-01', '2023-11-29', '볼링 점수 내기합시다.', true), ('불금 볼링 점수 내기 하실 분~', 3, 1, '2023-08-01', '2023-11-29', '볼링 점수 내기합시다.', true), ('불금 볼링 점수 내기 하실 분~', 3, 1, '2023-08-01', '2023-11-29', '볼링 점수 내기합시다.', true), ('불금 볼링 점수 내기 하실 분~', 4, 469, '2023-10-01', '2023-11-29', '볼링 점수 내기합시다.', true), ('불금 볼링 점수 내기 하실 분~', 4, 469, '2023-08-01', '2023-11-29', '볼링 점수 내기합시다.', true), ('불금 볼링 점수 내기 하실 분~', 4, 469, '2023-08-01', '2023-11-29', '볼링 점수 내기합시다.', true), ('불금 볼링 점수 내기 하실 분~', 4, 469, '2023-08-01', '2023-11-29', '볼링 점수 내기합시다.', true), ('불금 볼링 점수 내기 하실 분~', 1, 469, '2023-08-01', '2023-11-29', '볼링 점수 내기합시다.', true); INSERT INTO comment_tb (post_id, user_id, parent_id, content) VALUES (1, 2, null, '저 해도 되나요?'), (1, 1, 1, '신청해주세요~'); INSERT INTO applicant_tb (user_id, post_id, status) VALUES (1, 6, true), (1, 7, false), (1, 8, false), (1, 9, false), (1, 10, false), (1, 11, false), (1, 12, false), (1, 13, false), (1, 14, false), (1, 15, false), (1, 16, true), (1, 17, true), (1, 18, true), (1, 19, true), (2, 1, true), (3, 2, true), (4, 1, true), (5, 1, true), (11, 6, true), (7, 6, true), (8, 6, true), (9, 6, true), (10, 6, true); INSERT INTO score_tb (user_id, post_id, score) VALUES (1, 6, 100), (1, 1, 150), (1, 6, 45); INSERT INTO user_rate_tb(applicant_id, user_id, star_count) VALUES (1, 11, 5), (1, 7, 5), (1, 8, 5), (1, 9, 5), (1, 10, 5), (20, 10, 5), (20, 11, 5), (20, 8, 5), (20, 9, 5);추가
프로필 수정
프로필 수정 후 수정일자를 저장해야 할 것 같아서 user에 updateAt을 추가했습니다.신청
유저 기록 조회
참여 기록 조회
Related Issue
Issue Number: close #27 Issue Number: close #36 Issue Number: close #46