Skip to content

Commit

Permalink
hotfix: getTimetables 메서드에서 TimetableFrame 저장 에러 수정(develop) (#701)
Browse files Browse the repository at this point in the history
* fix : notification FK 회원 삭제 오류 수정 (#514)

* fix : notification/notification_subscribe DELETE CASCADE로 변경

* chore : Front 요청으로 인한 회원가입 에러코드 409 추가

* chore : DB 생략

* fix: 에러 반환값 수정 (#517)

* hotfix: 학생 회원 가입 시에 전화번호 형식 추가 허용 (#530)

* chore: 회원가입 전화번호 형식 추가 허용

* chore: 전화번호 가운데 세자리도 되게 허용

* chore: 비밀번호 틀렸을시에 400 반환하는 것으로 수정 (#605)

* develop -> main Merge (#652)

* fix: dto @NotNull 어노테이션 추가

* fix: 테스트코드 수정

* fix : 품절 알림 문구 점(.) 삭제 (#599)

* fix : 품절 알림 문구 점 삭제

* fix : 품절 알림 문구 점 삭제

* feat : put /admin/members/{id} api 추가 (#595)

* feat : put /admin/members/{id} api 추가

* fix: trackName 체크 메서드 생성

* fix: track 변경 체크 로직 및 track 수정 로직 수정

* �feat: 버스 필터링 (#586)

* feat: 노선 정보 캐싱

- 정류장을 지나는 노선 정보들 캐싱

* refactor: 필터링 위치 변경

- 버스 시간 조회시 필터링

* feat: 크롤링 추가

* feat: 테스트 추가

* refactor: 피드백 반영

* chore: 주석 추가

* refactor: 피드백 반영

- save -> saveAll로 변경

* feat : 학생, 사장님, 영양사 로그인 분기처리 (#563)

* feat : 사장님 / 영양사 로그인 분기 처리 추가

* chore : StudentUpdateResponse의 gender 검증 변수 제거

* feat : 테스트 추가

* feat: 가입 신청한 사장님 페이지네이션 조회(어드민계정) (#539)

* feat: 응답객체 생성

* feat: controller 생성

* refactor: 접근제어 변경

* feat: 요청 모델앤뷰 dto

* feat: 응답 객체

* feat: repository 생성

* feat: shop_id와 shop_name이 있는 owner객체 생성

* feat: service

* feat: 테스트 추가

* fix: 필요없는 코드 제거

* refactor: required 관련 수정

* refactor: 컨벤션 적용

* refactor: 로직 수정

* refactor: 로직 수정

* refactor: AdminShopRepository 제거

* refactor: controller api 수정

* refactor: 충돌 해결

* refactor: 충돌 해결

* refactor: 주석 추가

* refactor: 빌더 삭제 및 코드 개선

* refactor: 요청dto requiredMode 전부 적용

* refactor: 빌더 생성

* refactor: Enum위치 변경 및 빌더 삭제

* refactor: controller api implement 추가

* refactor: dto 메서드 스웨거에서 숨기기

* feat: POST /admin/members API 추가 (#541)

* feat: POST /admin/members API 추가

* fix: @Auth 추가 및 테스트 수정

* chore: 공백 제거

* refactor: GET /shops api 성능최적화 (#549)

* feat: swwagger 인증번호 발송 관련 api명세 추가

* feat: 마크업으로 변경

* feat: 레디스 캐싱

* feat: save메소드 추가

* feat: 캐시가 없으면 캐시에 데이터를 올린다

* refactor: 필요없는 설정 정리

* feat: 리뷰반영

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>

* feat: 상점 사장님 휴대폰번호로 회원가입 api작성 (#564)

* feat: 상점 사장님 휴대폰번호로 회원가입 api작성

* feat: 스웨거 이슈로 길어져버린 dto이름ㅠ

* feat: 리뷰 반영

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>

* 버스 openApi 에러 수정 (#565)

* fix: openApi scheduled에서 try catch

* fix: Exception catch로 변경

* chore : 사장님 로그인 api 작성

* feat : 로그인 API(학생, 사장님, 영양사) 분리

* chore : UserFixture 원경_사장님 수정

* chore : UserFixture 중복 사항 제거

* chore : UserFixture 오류 수정

* chore : 리뷰 반영(메소드 이름 변경)

* chore : 리뷰 반영(전화번호 숨김 및 이메일 형식 삭제)

* chore : 리뷰 반영(메소드 위치 변경 및 Response userType 삭제)

* chore : 사장님 로그인 테스트 위치 변경

* feat : flyway 추가

* feat : 영양사 테이블 추가 및 로그인 로직 수정

* feat : 사장님 테이블 컬럼 추가 및 로그인 로직 수정

* test : 테스트 코드 수정

* test : 테스트 오류 수정을 위한 기존 request 수정

* chore : 리뷰 반영(이메일 형식 확인 삭제)

* chore : flyway 변경(V16 수정 및 V18 추가)

* chore : User email @NotNull 제거(email null 허용)

* chore : Owner 핸드폰 회원가입 email null 값 허용

* chore : Test 수정 및 User email @column(nullable = false) 제거

* chore : 전화번호 관련 로직 "01000000000" 로 수정 및 테스트 수정

* test : Admin User 테스트 수정

---------

Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com>
Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com>
Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com>
Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>
Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com>

* hotfix: 비밀번호 검증 api 비밀번호 틀렸을시에 400 반환하는 것으로 수정(develop) (#607)

* fix : notification FK 회원 삭제 오류 수정 (#514)

* fix : notification/notification_subscribe DELETE CASCADE로 변경

* chore : Front 요청으로 인한 회원가입 에러코드 409 추가

* chore : DB 생략

* fix: 에러 반환값 수정 (#517)

* hotfix: 학생 회원 가입 시에 전화번호 형식 추가 허용 (#530)

* chore: 회원가입 전화번호 형식 추가 허용

* chore: 전화번호 가운데 세자리도 되게 허용

* chore: 비밀번호 틀렸을시에 400 반환하는 것으로 수정

* chore: swagger 400 추가

---------

Co-authored-by: duehee <149302959+duehee@users.noreply.github.com>
Co-authored-by: 최준호 <junho5336@gmail.com>
Co-authored-by: 송선권 <songsunkook@gmail.com>

* feat: POST /admin/members/{id}/undelete API 추가 (#600)

* feat: Admin BCSDLab 트랙 API 구현 (#606)

* feat: 기술스택 삭제 기능 구현

* test: admin으로 기술스택 제거 테스트 추가

* feat: admin 단일 트랙 조회 기능 추가

* test: admin으로 트랙 정보 단건 조회 테스트 추가

* feat: admin으로 트랙 생성 기능 추가

* test: admin으로 트랙 정보 생성 테스트 추가

* �feat: 버스 필터링 (#586)

* feat: 노선 정보 캐싱

- 정류장을 지나는 노선 정보들 캐싱

* refactor: 필터링 위치 변경

- 버스 시간 조회시 필터링

* feat: 크롤링 추가

* feat: 테스트 추가

* refactor: 피드백 반영

* chore: 주석 추가

* refactor: 피드백 반영

- save -> saveAll로 변경

* feat : 학생, 사장님, 영양사 로그인 분기처리 (#563)

* feat : 사장님 / 영양사 로그인 분기 처리 추가

* chore : StudentUpdateResponse의 gender 검증 변수 제거

* feat : 테스트 추가

* feat: 가입 신청한 사장님 페이지네이션 조회(어드민계정) (#539)

* feat: 응답객체 생성

* feat: controller 생성

* refactor: 접근제어 변경

* feat: 요청 모델앤뷰 dto

* feat: 응답 객체

* feat: repository 생성

* feat: shop_id와 shop_name이 있는 owner객체 생성

* feat: service

* feat: 테스트 추가

* fix: 필요없는 코드 제거

* refactor: required 관련 수정

* refactor: 컨벤션 적용

* refactor: 로직 수정

* refactor: 로직 수정

* refactor: AdminShopRepository 제거

* refactor: controller api 수정

* refactor: 충돌 해결

* refactor: 충돌 해결

* refactor: 주석 추가

* refactor: 빌더 삭제 및 코드 개선

* refactor: 요청dto requiredMode 전부 적용

* refactor: 빌더 생성

* refactor: Enum위치 변경 및 빌더 삭제

* refactor: controller api implement 추가

* refactor: dto 메서드 스웨거에서 숨기기

* feat: POST /admin/members API 추가 (#541)

* feat: POST /admin/members API 추가

* fix: @Auth 추가 및 테스트 수정

* chore: 공백 제거

* refactor: GET /shops api 성능최적화 (#549)

* feat: swwagger 인증번호 발송 관련 api명세 추가

* feat: 마크업으로 변경

* feat: 레디스 캐싱

* feat: save메소드 추가

* feat: 캐시가 없으면 캐시에 데이터를 올린다

* refactor: 필요없는 설정 정리

* feat: 리뷰반영

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>

* feat: 상점 사장님 휴대폰번호로 회원가입 api작성 (#564)

* feat: 상점 사장님 휴대폰번호로 회원가입 api작성

* feat: 스웨거 이슈로 길어져버린 dto이름ㅠ

* feat: 리뷰 반영

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>

* 버스 openApi 에러 수정 (#565)

* fix: openApi scheduled에서 try catch

* fix: Exception catch로 변경

* chore : 사장님 로그인 api 작성

* feat : 로그인 API(학생, 사장님, 영양사) 분리

* chore : UserFixture 원경_사장님 수정

* chore : UserFixture 중복 사항 제거

* chore : UserFixture 오류 수정

* chore : 리뷰 반영(메소드 이름 변경)

* chore : 리뷰 반영(전화번호 숨김 및 이메일 형식 삭제)

* chore : 리뷰 반영(메소드 위치 변경 및 Response userType 삭제)

* chore : 사장님 로그인 테스트 위치 변경

* feat : flyway 추가

* feat : 영양사 테이블 추가 및 로그인 로직 수정

* feat : 사장님 테이블 컬럼 추가 및 로그인 로직 수정

* test : 테스트 코드 수정

* test : 테스트 오류 수정을 위한 기존 request 수정

* chore : 리뷰 반영(이메일 형식 확인 삭제)

* chore : flyway 변경(V16 수정 및 V18 추가)

* chore : User email @NotNull 제거(email null 허용)

* chore : Owner 핸드폰 회원가입 email null 값 허용

* chore : Test 수정 및 User email @column(nullable = false) 제거

* chore : 전화번호 관련 로직 "01000000000" 로 수정 및 테스트 수정

* test : Admin User 테스트 수정

---------

Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com>
Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com>
Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com>
Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>
Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com>

* feat: admin으로 트랙 수정 기능 추가

* fix: legacy request의 불필요한 id 값 제거

* feat: 트랙명 중복 예외처리 추가

* test: admin 트랙 생성, 수정 중복 트랙명 예외 테스트 추가

* test: admin 트랙 수정 테스트 추가

* feat: admin으로 트랙 삭제 기능 추가

* test: admin 트랙 삭제 테스트 추가

* chore: 1차 피드백 반영

---------

Co-authored-by: 박성빈 <46699595+ImTotem@users.noreply.github.com>
Co-authored-by: duehee <149302959+duehee@users.noreply.github.com>
Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com>
Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com>
Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com>
Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>
Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com>

* Feature: 어드민 복덕방 삭제 (#612)

* feat: AdminLandApi 구현

* feat: AdminLandController

* feat: AdminLandRepository

* feat: AdminLandService

* feat: Land

* refactor: Admin권한 추가

* feat: 복덕방 삭제 테스트 코드 추가

* refactor: 복덕방 삭제 테스트 공백 추가

---------

Co-authored-by: Jang Jun Young <police0022@naver.com>

* refactor: 호환성 유지하기 위한 오너 회원가입 휴대폰번호 양식 롤백 (#614)

* refactor: 회원가입 휴대폰번호 양식 롤백

* refactor: 오너 회원가입 휴대폰번호 양식 테스트코드 롤백

* refactor: 리뷰 반영

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>

* feat : coop_id 관련 flyway 추가 (#618)

* feat : coop_id 관련 flyway 추가

* chore : 리뷰 반영(flyway 분리)

* refactor: 시내버스 정류장 불일치 해결 (#601)

* fix: 시내버스 노선 캐시 저장 로직 수정

* refactor: 정류장 추가

* refactor: 정류장 조회 로직 수정

* refactor: 테스트 수정

* fix : 품절 알림 처리 순서 수정 (#611)

* fix : 품절 캐시 저장, 알림 발송 순서 수정

* fix : dining 응답 0 -> null 반환으로 수정

* refactor: sms회원가입 redis초기화 로직 변경 (#622)

* refactor: sms회원가입 redi초기화 로직 변경

* refactor: eventListener 메소드 이름 변경

* refactor: 테스트 코드 변경

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>

* fix: 상점 수정, 삭제시 운영 요일 형식 검증 (#624)

* feat: 상점 운영시간 요일 형식 검증 추가

* feat: Inner Record에 @Valid추가

* refactor: 필요없는 어노테이션 삭제

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>

* feat: 사업자번호, 아이디 중복검증 추가 (#610)

* feat: 사업자등록번호 검증 추가

* feat: 전화번호 중복 검증 추가

* refactor: 전화번호 중복 사장님으로 이관

* refactor: phone_number -> account

* test: 테스트 수정

* refactor: check -> exists

* fix : Kcal가 null 일 경우 0을 반환하도록 롤백 (#626)

* fix: CityBusRoute 저장시 null 제외 추가 (#629)

* feat: 어드민권한 상점 관련 api작성 (#619)

* feat: 컨트롤러 작성

* feat: 상점 메뉴관련 조회 api 구현

* feat: 상점 메뉴관련 조회 api 구현 2

* feat: 특정 상점 메뉴 조회 테스트코드 작성

* feat: 테스트코드 작성

* feat: 테스트코드 작성

* refactor: 불필요한 공백 제거

* refactor: 리뷰 반영

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>

* feat: 어드민 복덕방 조회,수정,삭제취소 (#631)

* feat: 복덕방 조회 컨트롤러 구현

* feat: 복덕방 조회 서비스 구현

* feat: 복덕방 조회 테스트 구현

* feat: 복덕방 수정,삭제취소 구현

* feat: 복덕방 수정,삭제취소 서비스 구현

* refactor: land 모델 수정

* refactor: land 테스트 케이스 추가

* refactor: 어드민 dto 수정

* feat: 어드민 수정, 삭제취소 테스트 구현

* refactor: 라인 포맷팅

* refactor: 테스트 코드 수정

* refactor: dto반환형식 변경

* refactor: 라인포맷팅

---------

Co-authored-by: Jang Jun Young <police0022@naver.com>

* feat: 어드민 82~86,89,90,93~95 (#621)

* feat: 컨트롤러 구현

* feat: 사장님 인증권한 허용

* feat: 사장님 인증권한 허용

* feat: 테스트 추가

* feat: 테스트 import문 사용

* feat: 학생 리스트 조회 구현

* feat: 어드민 특정 사장님 수정

* feat: 어드민 사장님 페이지네이션

* feat: 어드민 회원 삭제

* feat: 어드민 로그인 구현

* feat: 어드민 로그아웃 구현

* feat: 어드민 리프레쉬 구현

* feat: 어드민 회원 조회

* fix: 페이지네이션 오류 수정

* test: 테스트 구현

* test: 나머지 모든 테스트 구현

* chore: 개행 처리

* chore: 개행 처리

* chore: 개행 처리

* chore: 이상한 설명 수정

* feat: ModelAttribute 파라미터로 전달되게 변경

* refactor: 사장님 인증 shop에 owner_id 할당되게 변경

* feat: 회원 탈퇴 취소 API 구현

* refactor: 83~86 충돌 수정

* refactor: 사장님인증 후 OwnerShop redis삭제 추가

* refactor: 사장님인증 테스트 수정

* refactor: AdminStudentResponse 메서드 of -> from 변경

* refactor: shopId null체크

* refactor: GrantShop 로직 수정, 로그인 save()제거

* refactor: 응답객체 수정

* refactor: 충돌 수정

* refactor: 충돌 수정

* refactor: 테스트 수정

* refactor: 응답반환수정

---------

Co-authored-by: seongjae6751 <seongjae6751@naver.com>

* feat: 어드민권한 상점, 카테고리 api작성 (#627)

* fix : notification FK 회원 삭제 오류 수정 (#514)

* fix : notification/notification_subscribe DELETE CASCADE로 변경

* chore : Front 요청으로 인한 회원가입 에러코드 409 추가

* chore : DB 생략

* fix: 에러 반환값 수정 (#517)

* hotfix: 학생 회원 가입 시에 전화번호 형식 추가 허용 (#530)

* chore: 회원가입 전화번호 형식 추가 허용

* chore: 전화번호 가운데 세자리도 되게 허용

* chore: 비밀번호 틀렸을시에 400 반환하는 것으로 수정 (#605)

* feat: controller 작성

* feat: service, repository 작성

* test: 어드민 shop, category 테스트 작성

* refactor: 1차 피드백 반영

* fix: 버그 수정

---------

Co-authored-by: duehee <149302959+duehee@users.noreply.github.com>
Co-authored-by: 최준호 <junho5336@gmail.com>
Co-authored-by: 김성재 <103095432+seongjae6751@users.noreply.github.com>
Co-authored-by: 송선권 <songsunkook@gmail.com>

* refactor: ADMIN 권한 추가 (#638)

* fix: 상점 생성,수정 / 메뉴 추가,수정 버그 해결 (#644)

* feat: DTO수정

* feat: imageUrl이 null인경우를 위한 DTO 생성자 추가

* feat: 상점 운영시간 DTO validation 문구 추가

* feat: 상점 운영시간 DTO 개수 제한 수정

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>

* feat: new timetable api 구현 (#615)

* feat: flyway 추가

* refactor: flyway 수정

* feat: timetable frame api 중 post, get, delete 구현 (#592)

* feat : 기본 Model 및 Repository 생성

* chore : isMain 추가

* feat: timetablesFrame post, get delete 기능 구현

* chore: 겹치는 로직 수정 및 일부 버그 수정

* feat: 회원 탈퇴시 timetableframe 및 timetable 수동 삭제

* feat: 삭제 전 검증 로직 추가

* chore: api 오타 수정

* chore: frame 빌더 파라미터 추가

* chore: snakecase로 dto 변경

* feat: lecture repo 메서드 추가

* test: timetable v2 test 코드 작성

* chore: 오타 수정

* feat: 삭제되는 frame이 main일때 다른 frame을 main으로 설정

* chore: 개행 제거

* chore: 개행 추가

* chore: 어색한 말 수정

* chore: 오타 수정

* chore: 변수명 및 개행 수정

* chore: 피드백 반영

* chore: 메서드 명 변경

---------

Co-authored-by: duehee <149302959+duehee@users.noreply.github.com>

* feat: timetableFrame put, timetableLecture delete 구현 & reafactor: 기존 timetable delete, get 수정 (#594)

* feat : 기본 Model 및 Repository 생성

* refactor: 기존 delete timetable 새로운 db와 연결 & v2 api 추가

* feat: tiemtable frame 수정 api 구현

* refactor: tiemtable frame 수정 api 반환값 dto 추가

* refactor: PUT timetable/frame에서 main으로 업데이트할 시 기존 main 테이블의 is_main을 false로 수정

* refactor: Get /timetables api 변경된 테이블 구조에 맞게 수정

* refactor: timeTable -> timetable로 변경

* refactor: deleteTimetableLecture() 유저 본인의 시간표에서 삭제하는지 검증 추가

* refactor: repository에서 main timetable을 가져오게 수정

* refactor: url 앞에 / 추가 & 기존에 없던 api url에 v2제거

* refactor: TimetableFrameUpdateRequest, TimetableFrameUpdateResponse에서 name Schema 수정

* refactor: TimetableFrameUpdateResponse에서 semester 대신 id를 반환하도록 수정

* refactor: timeTable -> timetable 이름 변경

* refactor: TimetableFrame에서 필요 없는 isMain()함수 제거

* refactor: LectureRepository에서 findByIdIn를 사용해 Lecture List를 가져오도록 수정

* refactor: TimetableLecture와 TimetableFrame에서 is_deleted=0으로 찾는 where 제거

* refactor: timetableFrame 수정 시 semester 변경 못하도록 수정

* fix: is_main 타입변경, snakecase적용되도록 수정 & test: timetableframe 수정 api, timetablelecture 삭제 api 테스트 작성

---------

Co-authored-by: duehee <149302959+duehee@users.noreply.github.com>

* feat: GET/semester/check수정 & POST/timetables수정 & POST/v2/timetables/lecture 추가 (#596)

* feat : 기본 Model 및 Repository 생성

* chore : isMain 추가

* feat: 시간표 생성 수정 및 추가

* feat: 강의시간표 응답 수정

* feat: 코드 오류 수정

* feat: API 수정

* feat: pr 수정

* feat: repository semester타입 수정

* fear : flyway 추가

* fear : flyway 추가

* fear : Lecture id 반환 추가

* fear : PUT /timetables 수정 및 /v2/timetables 추가

* feat: getTimetables API 수정

* refactor: PR 리뷰 반영

* fear : 리뷰 반영

* refactor : 코드 리팩터링

* refactor: 충돌 수정

* refactor: 충돌 수정

* refactor: 로직 수정 및 학점추가

* refactor: 학점 계산 로직 수정

* refactor: 오류 수정

* refactor: 코드 수정

---------

Co-authored-by: duehee <149302959+duehee@users.noreply.github.com>

* refactor: flyway timetable_id -> frame_id 변경

* refactor: TimetableFrame에 @where(clause = is_deleted=0) 추가

* refactor: frame api의 url에 v2추가

* refactor: TimetableLectures create,update 문에 user 인증 추가

* refactor : TimetableUpdate에 id가 null인 경우 삭제

* refactor: swagger 수정

* refactor: v2 패키지로 이동

* fix: v2 api 이름에 v2 추가

* chore : 리뷰 반영(Repo 미사용 메소드 삭제)

* chore : 리뷰 반영(isMain boolean으로 수정)

* chore : 리뷰 반영(변수 추가 및 getIsMain() -> isMain() 수정)

* chore : 리뷰 반영

* refactor: createTimetablesFrame에서 main 시간표 count 시 0부터 세도록 수정

* fix: createTimetablesFrame에서 이름 생성할 때 카운트 +1하도록 수정

* fix: createTimetablesFrame에서 카운트 +1할 때 괄호 추가

---------

Co-authored-by: kwoo28 <148550522+kwoo28@users.noreply.github.com>
Co-authored-by: 김성재 <103095432+seongjae6751@users.noreply.github.com>
Co-authored-by: duehee <149302959+duehee@users.noreply.github.com>

* fix : flyway 버저닝 충돌 해결 (#646)

* fix : 롤백 이후 flyway 오류 수정(timetable_id -> frame_id) (#648)

* refactor: internalName 필수요구 제거 (#650)

Co-authored-by: Jang Jun Young <police0022@naver.com>

---------

Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>
Co-authored-by: 최준호 <junho5336@gmail.com>
Co-authored-by: Hwang HyeonSik <142300831+Choon0414@users.noreply.github.com>
Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com>
Co-authored-by: 박성빈 <46699595+ImTotem@users.noreply.github.com>
Co-authored-by: duehee <149302959+duehee@users.noreply.github.com>
Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com>
Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com>
Co-authored-by: 김성재 <103095432+seongjae6751@users.noreply.github.com>
Co-authored-by: 송선권 <songsunkook@gmail.com>
Co-authored-by: 배진호 <72592302+BaeJinho4028@users.noreply.github.com>
Co-authored-by: Jang-JunYoung <79901434+johnny19991006@users.noreply.github.com>
Co-authored-by: Jang Jun Young <police0022@naver.com>
Co-authored-by: seongjae6751 <seongjae6751@naver.com>
Co-authored-by: Dahee Park <106418303+daheeParkk@users.noreply.github.com>

* feat: 조회시 프레임 없으면 생성 (#689)

* feat: 시간표 생성시 전체 반환 (#690)

* feat:  getTimetables 메서드에서 TimetableFrame 저장 에러 수정

* refactore: 로직 수정

* refactore: 불필요한 import삭제

* chore: 충돌중 잘못 합쳐진 것 수정

---------

Co-authored-by: duehee <149302959+duehee@users.noreply.github.com>
Co-authored-by: 최준호 <junho5336@gmail.com>
Co-authored-by: 송선권 <songsunkook@gmail.com>
Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com>
Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com>
Co-authored-by: Hwang HyeonSik <142300831+Choon0414@users.noreply.github.com>
Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com>
Co-authored-by: 박성빈 <46699595+ImTotem@users.noreply.github.com>
Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com>
Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com>
Co-authored-by: 배진호 <72592302+BaeJinho4028@users.noreply.github.com>
Co-authored-by: Jang-JunYoung <79901434+johnny19991006@users.noreply.github.com>
Co-authored-by: Jang Jun Young <police0022@naver.com>
Co-authored-by: Dahee Park <106418303+daheeParkk@users.noreply.github.com>
Co-authored-by: 김원경 <kyg279044@gmail.com>
  • Loading branch information
16 people authored Jul 15, 2024
1 parent 909ae2c commit 1783a28
Showing 1 changed file with 37 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand Down Expand Up @@ -42,27 +43,27 @@ public List<LectureResponse> getLecturesBySemester(String semester) {
throw SemesterNotFoundException.withDetail(semester);
}
return lectures.stream()
.map(LectureResponse::from)
.toList();
.map(LectureResponse::from)
.toList();
}

@Transactional
public TimetableResponse createTimetables(Integer userId, TimetableCreateRequest request) {
Semester semester = semesterRepositoryV2.getBySemester(request.semester());
List<TimetableLecture> timetableLectures = new ArrayList<>();
TimetableFrame timetableFrame = timetableFrameRepositoryV2.getMainTimetableByUserIdAndSemesterId(userId,
semester.getId());
semester.getId());

for (TimetableCreateRequest.InnerTimetableRequest timeTable : request.timetable()) {
Lecture lecture = lectureRepositoryV2.getBySemesterAndCodeAndLectureClass(request.semester(),
timeTable.code(), timeTable.lectureClass());
timeTable.code(), timeTable.lectureClass());
TimetableLecture timetableLecture = TimetableLecture.builder()
.classPlace(timeTable.classPlace())
.grades("0")
.memo(timeTable.memo())
.lecture(lecture)
.timetableFrame(timetableFrame)
.build();
.classPlace(timeTable.classPlace())
.grades("0")
.memo(timeTable.memo())
.lecture(lecture)
.timetableFrame(timetableFrame)
.build();

timetableLectures.add(timetableLectureRepositoryV2.save(timetableLecture));
}
Expand All @@ -74,7 +75,7 @@ public TimetableResponse createTimetables(Integer userId, TimetableCreateRequest
public TimetableResponse updateTimetables(Integer userId, TimetableUpdateRequest request) {
Semester semester = semesterRepositoryV2.getBySemester(request.semester());
TimetableFrame timetableFrame = timetableFrameRepositoryV2.getMainTimetableByUserIdAndSemesterId(userId,
semester.getId());
semester.getId());
for (TimetableUpdateRequest.InnerTimetableRequest timetableRequest : request.timetable()) {
TimetableLecture timetableLecture = timetableLectureRepositoryV2.getById(timetableRequest.id());
timetableLecture.update(timetableRequest);
Expand All @@ -83,22 +84,29 @@ public TimetableResponse updateTimetables(Integer userId, TimetableUpdateRequest
return getTimetableResponse(userId, timetableFrame);
}

@Transactional
public TimetableResponse getTimetables(Integer userId, String semesterRequest) {
Semester semester = semesterRepositoryV2.getBySemester(semesterRequest);
User user = userRepository.getById(userId);

TimetableFrame timetableFrame = timetableFrameRepositoryV2.findByUserIdAndSemesterIdAndIsMainTrue(userId,
semester.getId()).orElse(
TimetableFrame
Optional<TimetableFrame> timetableFrame = timetableFrameRepositoryV2.findByUserIdAndSemesterIdAndIsMainTrue(userId,
semester.getId());

if (timetableFrame.isEmpty()) {
TimetableFrame newTimetableFrame = TimetableFrame
.builder()
.user(user)
.semester(semester)
.name("시간표1")
.isMain(true)
.isDeleted(false)
.build());
.build();
timetableFrameRepositoryV2.save(newTimetableFrame);
}

return getTimetableResponse(userId, timetableFrame);
TimetableFrame frame = timetableFrameRepositoryV2.getMainTimetableByUserIdAndSemesterId(userId, semester.getId());

return getTimetableResponse(userId, frame);
}

@Transactional
Expand All @@ -117,37 +125,37 @@ private TimetableResponse getTimetableResponse(Integer userId, TimetableFrame ti
int totalGrades = 0;

List<TimetableLecture> timetableLectures = timetableLectureRepositoryV2.findAllByTimetableFrameId(
timetableFrame.getId());
timetableFrame.getId());
grades = timetableLectures.stream()
.mapToInt(lecture -> Integer.parseInt(lecture.getLecture().getGrades()))
.sum();
.mapToInt(lecture -> Integer.parseInt(lecture.getLecture().getGrades()))
.sum();

for (TimetableFrame timetableFrames : timetableFrameRepositoryV2.findByUserIdAndIsMainTrue(userId)) {
totalGrades += timetableLectureRepositoryV2.findAllByTimetableFrameId(timetableFrames.getId()).stream()
.filter(lecture -> lecture.getLecture() != null)
.mapToInt(lecture -> Integer.parseInt(lecture.getLecture().getGrades()))
.sum();
.filter(lecture -> lecture.getLecture() != null)
.mapToInt(lecture -> Integer.parseInt(lecture.getLecture().getGrades()))
.sum();
}

return TimetableResponse.of(timetableLectures, timetableFrame, grades, totalGrades);
}

private TimetableResponse getTimetableResponse(Integer userId, TimetableFrame timetableFrame,
List<TimetableLecture> timetableLectures) {
List<TimetableLecture> timetableLectures) {
int grades = 0;
int totalGrades = 0;

if (timetableFrame.isMain()) {
grades = timetableLectures.stream()
.filter(lecture -> lecture.getLecture() != null)
.mapToInt(lecture -> Integer.parseInt(lecture.getLecture().getGrades()))
.sum();
.filter(lecture -> lecture.getLecture() != null)
.mapToInt(lecture -> Integer.parseInt(lecture.getLecture().getGrades()))
.sum();
}
for (TimetableFrame timetableFrames : timetableFrameRepositoryV2.findByUserIdAndIsMainTrue(userId)) {
totalGrades += timetableLectureRepositoryV2.findAllByTimetableFrameId(timetableFrames.getId()).stream()
.filter(lecture -> lecture.getLecture() != null)
.mapToInt(lecture -> Integer.parseInt(lecture.getLecture().getGrades()))
.sum();
.filter(lecture -> lecture.getLecture() != null)
.mapToInt(lecture -> Integer.parseInt(lecture.getLecture().getGrades()))
.sum();
}

return TimetableResponse.of(timetableLectures, timetableFrame, grades, totalGrades);
Expand Down

0 comments on commit 1783a28

Please sign in to comment.