-
Notifications
You must be signed in to change notification settings - Fork 1
Bug/1 #81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Bug/1 #81
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* feat: κ³΅ν΅ λλ©μΈ ꡬν * feat: λ©μΈ μ΄ν리μΌμ΄μ μ μΆκ° * feat: swagger μΆκ° * feat: swagger μΆκ°
* feat: κ³΅ν΅ λλ©μΈ ꡬν * feat: λ©μΈ μ΄ν리μΌμ΄μ μ μΆκ°
* feature/OpenAPI Test/02-HwuanPage * Update SurfingForecastApiClient.java * feature/APICallTest-02-HwuanPage
* feature/EntityInit-13-HwuanPage * feature/JellyfishEntityInit-13-HwuanPage * Update FishingType.java * feature/EntityInitialize-13-HwuanPage
* feat : MeetingService μΈν°νμ΄μ€ ꡬν * feat : ParticipantResponse * feat : MeetingListResponse ꡬν * feat : MeetingDetailResponseꡬν * feat : MeetingDetailAndMemberResponse ꡬν * feat : ListSpot ꡬν * feat : DetailSpot ꡬν * feat : CreateMeetingRequest ꡬν * feat : Tag ꡬν * feat : Long -> long λ³κ²½ μλΉμ€μ Entityλ΄μμ nullκ°μ΄ μ λ λμ€μ§ μλλ€κ³ νλ¨νλ κ°μ longμΌλ‘ λ³κ²½νμμ΅λλ€. * feat : MeetingService.java -> 무ννμ΄μ§λ‘λ©νμμΌλ‘ λ°κΎΈμμ΅λλ€. * Update src/main/java/sevenstar/marineleisure/meeting/Dto/Response/MeetingDetailResponse.java Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]>
* feature/FavoritesAndAlertInterface-16-HwuanPage * Update AlertMapper.java * Update JellyfishRegionDensityRepository.java * Update AlertController.java * Update FavoriteController.java * Update FavoriteRepository.java * Update AlertController.java * Update JellyfishSpieces.java * Update JellyfishRegion.java * Update JellyfishRegion.java
* feature/CustomExceptionInit-22-HwuanPage * Errorcode interface Change
* refactor: application.yml νκ²½λ³μ μ€μ * Rename: μ€ν μμ
* Create Pdf Parser * Web crawler run perpectly,but pdfparser do not work well * PDF parse to stack DB complete with OPENAI * CallAlert Complete * JellyFish PDF parsing work well * feature/ControllerTest Complete * feature/JellyfishAlert-26-HwuanPage
* feat: μ¦κ²¨μ°ΎκΈ° μΆκ° λ° λ¦¬ν©ν λ§ * refactor: 리ν©ν λ§
* refactor: κΈ°μ‘΄ state μ¬μ© λ°©μ -> stateless λ°©μμΌλ‘ λ³κ²½ * refactor: κΈ°μ‘΄ state μ¬μ© λ°©μ -> stateless λ°©μμΌλ‘ λ³κ²½μΌλ‘ μΈν΄ νμ μλ μλ ν¬μΈνΈ μμ * test: λ³κ²½μ¬ν test μμ * feat: μΉ΄μΉ΄μ€ μΈ‘μμ μΈμ¦ μ€ν¨μμ λ°ν νλ μλ¬ μ²λ¦¬νλ μ½λ ꡬν * test: μΉ΄μΉ΄μ€ μΈ‘μμ μΈμ¦ μ€ν¨μμ λ°ν νλ μλ¬ μ²λ¦¬νλ ν μ€νΈ μΆκ° * fix: μ£Όμ μ κ±° * fix: exception λ³κ²½
* WIP: Rebaseλ₯Ό μν μμ μ μ₯ * feat : Meeting.java -> Meeting μν°ν° @builder λ₯Ό μμ μ΄λ Έν μ΄μ μ μΌλ¨ μΆκ°μμΌ°μ΅λλ€. * feat : Meeting.java -> Meeting μν°ν° @builder λ₯Ό μμ μ΄λ Έν μ΄μ μ μΌλ¨ μΆκ°μμΌ°μ΅λλ€. * feat : Meeting.java -> Meeting μν°ν° @builder λ₯Ό μμ μ΄λ Έν μ΄μ μ μΌλ¨ μΆκ°μμΌ°μ΅λλ€. * Delete MeetingServiceImplReview.md * Delete MeetingServiceUserFlow.md * feat : ν¨ν€μ§λͺ λ³κ²½ μ΄μ -> ν¨ν€μ§ λͺ μ 컨벀μ μ λ°λ₯Έ μ΄λ¦μΌλ‘ λ³κ²½νμ΅λλ€. * feat : MeetingController.java long participantCount = participantRepository.countMeetingIdMember -> long participantCount = participantRepository.countMeetingIdλ‘ μμ νμμ΅λλ€. * feat : MeetingError.java MeetingError.java λ₯Ό μΆκ°νμμ΅λλ€. * feat : MeetingMapper MeetingServiceImplμμ μ¬μ©μ€μ΄μλ Mapperλ₯Ό λΆλ¦¬νμμ΅λλ€. * feat : MeetingService.java ν¨ν€μ§ λͺ μμ μΌλ‘ μΈν΄μ μμ μ¬νμ΄ μμμ΅λλ€. * feat : MeetingServiceImpl.java νΈλμμ κ΄λ¦¬ λͺ νν νμμ΅λλ€. validate ν¨ν€μ§λ₯Ό κ°μ νμμ΅λλ€. joinMeeting μ€λ³΅ μ°Έμ¬ μ ν λ‘μ§μ κ°ννμμ΅λλ€. * `getAllMeetings(Long cursorId, int size)`: * λͺ©μ : λͺ¨λ λͺ¨μ λͺ©λ‘μ νμ΄μ§ μ²λ¦¬νμ¬ μ‘°νν©λλ€. cursorIdλ₯Ό μ¬μ©νμ¬ λ¬΄ν μ€ν¬λ‘€κ³Ό κ°μ 컀μ κΈ°λ° νμ΄μ§μ μ§μν©λλ€. * νΉμ§: @transactional(readOnly = true)λ₯Ό ν΅ν΄ μ½κΈ° μ μ© νΈλμμ μΌλ‘ μ΅μ νλμμ΅λλ€. * `getMeetingDetails(Long meetingId)`: * λͺ©μ : νΉμ λͺ¨μμ μμΈ μ 보λ₯Ό μ‘°νν©λλ€. νΈμ€νΈ, μ₯μ, νκ·Έ λ± μ°κ΄λ μ 보λ₯Ό ν¨κ» κ°μ Έμ΅λλ€. * κ°μ μμ : νμ¬ N+1 λ¬Έμ κ° λ°μν μ μμ΄, ν₯ν Fetch Joinμ ν΅ν μ±λ₯ μ΅μ νκ° νμν©λλ€. * `getStatusMyMeetings(Long memberId, Long cursorId, int size, MeetingStatus meetingStatus)`: * λͺ©μ : νΉμ νμμ μνλ³(μ: λͺ¨μ§ μ€, μλ£) λͺ¨μ λͺ©λ‘μ νμ΄μ§ μ²λ¦¬νμ¬ μ‘°νν©λλ€. * `getMeetingDetailAndMember(Long memberId, Long meetingId)`: * λͺ©μ : νΈμ€νΈκ° μμ μ λͺ¨μ μμΈ μ 보μ μ°Έμ¬μ λͺ©λ‘μ μ‘°νν©λλ€. μ°Έμ¬μλ€μ λλ€μμ ν¨κ» μ 곡ν©λλ€. * `countMeetings(Long memberId)`: * λͺ©μ : νΉμ νμμ΄ μ°Έμ¬ν λͺ¨μμ μ΄ κ°μλ₯Ό λ°νν©λλ€. * `joinMeeting(Long meetingId, Long memberId)`: * λͺ©μ : νμμ΄ νΉμ λͺ¨μμ μ°Έμ¬ν©λλ€. * μ£Όμ κ°μ : λͺ¨μ μν κ²μ¦(verifyRecruiting), μ€λ³΅ μ°Έμ¬ κ²μ¦(`verifyNotAlreadyParticipant`), λͺ¨μ μ μ μ΄κ³Ό κ²μ¦(verifyMeetingCount) λ‘μ§μ΄ κ°νλμμ΅λλ€. * κ°μ μμ : λμμ± λ¬Έμ (Race Condition) ν΄κ²°μ μν λΉκ΄μ λ½(Pessimistic Lock) μ μ©μ΄ νμν©λλ€. * `leaveMeeting(Long meetingId, Long memberId)`: * λͺ©μ : νμμ΄ λͺ¨μμμ νν΄ν©λλ€. * μ£Όμ κ°μ : νΈμ€νΈ νν΄ λ°©μ§(verifyNotHost), λͺ¨μ μνμ λ°λ₯Έ νν΄ κ°λ₯ μ¬λΆ κ²μ¦(verifyLeave) λ‘μ§μ΄ μΆκ°λμμ΅λλ€. * κ°μ μμ : MEETING_NOT_FOUND λμ CANNOT_LEAVE_COMPLETED_MEETINGκ³Ό κ°μ λ ꡬ체μ μΈ μλ¬ μ½λ μ μ©μ΄ νμν©λλ€. * `createMeeting(Long memberId, CreateMeetingRequest request)`: * λͺ©μ : μλ‘μ΄ λͺ¨μμ μμ±ν©λλ€. νΈμ€νΈλ₯Ό μ°Έμ¬μλ‘ μλ λ±λ‘νκ³ νκ·Έ μ 보λ₯Ό μ μ₯ν©λλ€. * `updateMeeting(Long meetingId, Long memberId, UpdateMeetingRequest request)`: * λͺ©μ : κΈ°μ‘΄ λͺ¨μμ μ 보λ₯Ό μμ ν©λλ€. νΈμ€νΈλ§ μμ ν μ μλλ‘ κ²μ¦ν©λλ€. * `deleteMeeting(Member member, Long meetingId)`: * λͺ©μ : λͺ¨μμ μμ ν©λλ€. * κ°μ μμ : 물리μ μμ λμ λ Όλ¦¬μ μμ (Soft Delete) λ°©μ λμ μ κ³ λ € μ€μ λλ€. * feat : MeetingValidate.java,MemberValidate.java,ParticipantValidate,SpotValidate,TagValidate.java κ²μ¦λ‘μ§μ μΆκ°νμμ΅λλ€. * feat : MemberError.java , ParticipantRepository κΈ°λ₯μ μΆκ°νμμ΅λλ€. --------- Co-authored-by: Hwang Seong Cheol a.k.a Hwuan Page <[email protected]>
* feature/IntegrationSet(test&Build)-52-HwuanPage * data.sql unique update * image build needs * ignore dev.yml * remove dev.yml tracking and ignore it * prod * proded
* feature: 컨νΈλ‘€λ¬, μλΉμ€ μμ± * feature: νλλ³ μ§μ μ‘°ν(μμΉ κΈ°λ°) * feature: DTO μΆκ° * feature: νλλ³ μ§μ μ‘°ν(κΈλ‘λ²) μΆκ°, 컨νΈλ‘€λ¬ μμ * feature: νλλ³ μ§μ μμΈ μ‘°ν(λ―Έμμ±) * feature: ν΄μ μ 보 μ‘°ν * feature: νλ μμΈ μ‘°ν --------- Co-authored-by: Gunwoong cho <[email protected]>
* fix: λ©€λ² μμ ꡬν * feat: λ©€λ² μμ , μ/κ²½λ μμ ꡬν * test: ν μ€νΈ μμ * Delete src/main/java/sevenstar/marineleisure/meeting/repository/MemberRepository.java * Delete src/main/java/sevenstar/marineleisure/meeting/repository/OutdoorSpotSpotRepository.java * Delete src/main/resources/test.http --------- Co-authored-by: LEESUNBIN <[email protected]> Co-authored-by: Gunwoong cho <[email protected]>
existsByMeetingIdAndUserId λ‘ μμ νμμ΅λλ€.
memberId -> userIdλ‘ μμ νμμ΅λλ€.
* feature/base domain 04 gunwoong (#6) * feat: κ³΅ν΅ λλ©μΈ ꡬν * feat: λ©μΈ μ΄ν리μΌμ΄μ μ μΆκ° * feature/CustomExceptionInit-22-HwuanPage * feature/CustomExceptionInit-22-HwuanPage * Errorcode interface Change * Refactor application.yml νκ²½λ³μ μ€μ (#25) * refactor: application.yml νκ²½λ³μ μ€μ * Rename: μ€ν μμ * Feature/spot service interface 29 gunwoong (#30) * feat: api * feat: api μ€μΌμ€λ§ * feat: spot service inteface * feat: μΉ΄μΉ΄μ€ λ‘κ·ΈμΈμ stateless νκ² λ³κ²½νλ€ (#51) * refactor: κΈ°μ‘΄ state μ¬μ© λ°©μ -> stateless λ°©μμΌλ‘ λ³κ²½ * refactor: κΈ°μ‘΄ state μ¬μ© λ°©μ -> stateless λ°©μμΌλ‘ λ³κ²½μΌλ‘ μΈν΄ νμ μλ μλ ν¬μΈνΈ μμ * test: λ³κ²½μ¬ν test μμ * feat: μΉ΄μΉ΄μ€ μΈ‘μμ μΈμ¦ μ€ν¨μμ λ°ν νλ μλ¬ μ²λ¦¬νλ μ½λ ꡬν * test: μΉ΄μΉ΄μ€ μΈ‘μμ μΈμ¦ μ€ν¨μμ λ°ν νλ μλ¬ μ²λ¦¬νλ ν μ€νΈ μΆκ° * fix: μ£Όμ μ κ±° * fix: exception λ³κ²½ * Feat/meeting service (#46) * WIP: Rebaseλ₯Ό μν μμ μ μ₯ # Conflicts: # src/main/java/sevenstar/marineleisure/global/exception/enums/CommonErrorCode.java # src/main/java/sevenstar/marineleisure/global/swagger/SwaggerController.java * feat : Meeting.java -> Meeting μν°ν° @builder λ₯Ό μμ μ΄λ Έν μ΄μ μ μΌλ¨ μΆκ°μμΌ°μ΅λλ€. * feat : Meeting.java -> Meeting μν°ν° @builder λ₯Ό μμ μ΄λ Έν μ΄μ μ μΌλ¨ μΆκ°μμΌ°μ΅λλ€. * feat : Meeting.java -> Meeting μν°ν° @builder λ₯Ό μμ μ΄λ Έν μ΄μ μ μΌλ¨ μΆκ°μμΌ°μ΅λλ€. * Delete MeetingServiceImplReview.md * Delete MeetingServiceUserFlow.md * feat : ν¨ν€μ§λͺ λ³κ²½ μ΄μ -> ν¨ν€μ§ λͺ μ 컨벀μ μ λ°λ₯Έ μ΄λ¦μΌλ‘ λ³κ²½νμ΅λλ€. * feat : MeetingController.java long participantCount = participantRepository.countMeetingIdMember -> long participantCount = participantRepository.countMeetingIdλ‘ μμ νμμ΅λλ€. * feat : MeetingError.java MeetingError.java λ₯Ό μΆκ°νμμ΅λλ€. * feat : MeetingMapper MeetingServiceImplμμ μ¬μ©μ€μ΄μλ Mapperλ₯Ό λΆλ¦¬νμμ΅λλ€. * feat : MeetingService.java ν¨ν€μ§ λͺ μμ μΌλ‘ μΈν΄μ μμ μ¬νμ΄ μμμ΅λλ€. * feat : MeetingServiceImpl.java νΈλμμ κ΄λ¦¬ λͺ νν νμμ΅λλ€. validate ν¨ν€μ§λ₯Ό κ°μ νμμ΅λλ€. joinMeeting μ€λ³΅ μ°Έμ¬ μ ν λ‘μ§μ κ°ννμμ΅λλ€. * `getAllMeetings(Long cursorId, int size)`: * λͺ©μ : λͺ¨λ λͺ¨μ λͺ©λ‘μ νμ΄μ§ μ²λ¦¬νμ¬ μ‘°νν©λλ€. cursorIdλ₯Ό μ¬μ©νμ¬ λ¬΄ν μ€ν¬λ‘€κ³Ό κ°μ 컀μ κΈ°λ° νμ΄μ§μ μ§μν©λλ€. * νΉμ§: @transactional(readOnly = true)λ₯Ό ν΅ν΄ μ½κΈ° μ μ© νΈλμμ μΌλ‘ μ΅μ νλμμ΅λλ€. * `getMeetingDetails(Long meetingId)`: * λͺ©μ : νΉμ λͺ¨μμ μμΈ μ 보λ₯Ό μ‘°νν©λλ€. νΈμ€νΈ, μ₯μ, νκ·Έ λ± μ°κ΄λ μ 보λ₯Ό ν¨κ» κ°μ Έμ΅λλ€. * κ°μ μμ : νμ¬ N+1 λ¬Έμ κ° λ°μν μ μμ΄, ν₯ν Fetch Joinμ ν΅ν μ±λ₯ μ΅μ νκ° νμν©λλ€. * `getStatusMyMeetings(Long memberId, Long cursorId, int size, MeetingStatus meetingStatus)`: * λͺ©μ : νΉμ νμμ μνλ³(μ: λͺ¨μ§ μ€, μλ£) λͺ¨μ λͺ©λ‘μ νμ΄μ§ μ²λ¦¬νμ¬ μ‘°νν©λλ€. * `getMeetingDetailAndMember(Long memberId, Long meetingId)`: * λͺ©μ : νΈμ€νΈκ° μμ μ λͺ¨μ μμΈ μ 보μ μ°Έμ¬μ λͺ©λ‘μ μ‘°νν©λλ€. μ°Έμ¬μλ€μ λλ€μμ ν¨κ» μ 곡ν©λλ€. * `countMeetings(Long memberId)`: * λͺ©μ : νΉμ νμμ΄ μ°Έμ¬ν λͺ¨μμ μ΄ κ°μλ₯Ό λ°νν©λλ€. * `joinMeeting(Long meetingId, Long memberId)`: * λͺ©μ : νμμ΄ νΉμ λͺ¨μμ μ°Έμ¬ν©λλ€. * μ£Όμ κ°μ : λͺ¨μ μν κ²μ¦(verifyRecruiting), μ€λ³΅ μ°Έμ¬ κ²μ¦(`verifyNotAlreadyParticipant`), λͺ¨μ μ μ μ΄κ³Ό κ²μ¦(verifyMeetingCount) λ‘μ§μ΄ κ°νλμμ΅λλ€. * κ°μ μμ : λμμ± λ¬Έμ (Race Condition) ν΄κ²°μ μν λΉκ΄μ λ½(Pessimistic Lock) μ μ©μ΄ νμν©λλ€. * `leaveMeeting(Long meetingId, Long memberId)`: * λͺ©μ : νμμ΄ λͺ¨μμμ νν΄ν©λλ€. * μ£Όμ κ°μ : νΈμ€νΈ νν΄ λ°©μ§(verifyNotHost), λͺ¨μ μνμ λ°λ₯Έ νν΄ κ°λ₯ μ¬λΆ κ²μ¦(verifyLeave) λ‘μ§μ΄ μΆκ°λμμ΅λλ€. * κ°μ μμ : MEETING_NOT_FOUND λμ CANNOT_LEAVE_COMPLETED_MEETINGκ³Ό κ°μ λ ꡬ체μ μΈ μλ¬ μ½λ μ μ©μ΄ νμν©λλ€. * `createMeeting(Long memberId, CreateMeetingRequest request)`: * λͺ©μ : μλ‘μ΄ λͺ¨μμ μμ±ν©λλ€. νΈμ€νΈλ₯Ό μ°Έμ¬μλ‘ μλ λ±λ‘νκ³ νκ·Έ μ 보λ₯Ό μ μ₯ν©λλ€. * `updateMeeting(Long meetingId, Long memberId, UpdateMeetingRequest request)`: * λͺ©μ : κΈ°μ‘΄ λͺ¨μμ μ 보λ₯Ό μμ ν©λλ€. νΈμ€νΈλ§ μμ ν μ μλλ‘ κ²μ¦ν©λλ€. * `deleteMeeting(Member member, Long meetingId)`: * λͺ©μ : λͺ¨μμ μμ ν©λλ€. * κ°μ μμ : 물리μ μμ λμ λ Όλ¦¬μ μμ (Soft Delete) λ°©μ λμ μ κ³ λ € μ€μ λλ€. * feat : MeetingValidate.java,MemberValidate.java,ParticipantValidate,SpotValidate,TagValidate.java κ²μ¦λ‘μ§μ μΆκ°νμμ΅λλ€. * feat : MemberError.java , ParticipantRepository κΈ°λ₯μ μΆκ°νμμ΅λλ€. --------- Co-authored-by: Hwang Seong Cheol a.k.a Hwuan Page <[email protected]> * feat: ν μ€νΈμ© μ‘μΈμ€ ν ν° μμ± * feature/base domain 04 gunwoong (#6) * feat: κ³΅ν΅ λλ©μΈ ꡬν * feat: λ©μΈ μ΄ν리μΌμ΄μ μ μΆκ° * Refactor application.yml νκ²½λ³μ μ€μ (#25) * refactor: application.yml νκ²½λ³μ μ€μ * Rename: μ€ν μμ * Feature/spot service interface 29 gunwoong (#30) * feat: api * feat: api μ€μΌμ€λ§ * feat: spot service inteface * feature/base domain 04 gunwoong (#6) * feat: κ³΅ν΅ λλ©μΈ ꡬν * feat: λ©μΈ μ΄ν리μΌμ΄μ μ μΆκ° * feature/CustomExceptionInit-22-HwuanPage * feature/CustomExceptionInit-22-HwuanPage * Errorcode interface Change * Feature/spot service interface 29 gunwoong (#30) * feat: api * feat: api μ€μΌμ€λ§ * feat: spot service inteface * Feature/api scheduler 15 gunwoong (#28) * feat: api * feat: api μ€μΌμ€λ§ * feat: spot service inteface * test: remove legacy test * feat: apply open meteo * test: apply api test * feature/FavoriteCRUD-33-HwuanPage * DELETE COMPLETE * UPDATE COMPLETE * search COMPLETE * Before gunwoong * FavoriteCRUD create * feat/domain test * FavoriteSpotServiceTest * FavoriteSpotServiceTest * feature/FavoriteCURD-33-HwuanPage * add some description on service * Update FavoriteServiceImpl.java * fix: error fix * fix: μμ λ‘κ·ΈμΈ μ¬μλ μ λλ€μ UNIQUE μ μ½ μλ° μ€λ₯ λ°μ (#42) * fix: λ‘κ·Έμμ ν μ¬λ‘κ·ΈμΈ μ λμΌ μ λ³΄λ‘ dbμ insert νλ λ²κ·Έ μμ * refactor: λ‘κ·Έμμ ν μ¬λ‘κ·ΈμΈ μ λμΌ μ λ³΄λ‘ dbμ insert μμ μ¬ν 리ν©ν λ§ * test: λ³κ²½μ¬νμ λ°λ₯Έ ν μ€νΈ μ½λ μμ * hofix: bug fix * feat: μΉ΄μΉ΄μ€ λ‘κ·ΈμΈμ stateless νκ² λ³κ²½νλ€ (#51) * refactor: κΈ°μ‘΄ state μ¬μ© λ°©μ -> stateless λ°©μμΌλ‘ λ³κ²½ * refactor: κΈ°μ‘΄ state μ¬μ© λ°©μ -> stateless λ°©μμΌλ‘ λ³κ²½μΌλ‘ μΈν΄ νμ μλ μλ ν¬μΈνΈ μμ * test: λ³κ²½μ¬ν test μμ * feat: μΉ΄μΉ΄μ€ μΈ‘μμ μΈμ¦ μ€ν¨μμ λ°ν νλ μλ¬ μ²λ¦¬νλ μ½λ ꡬν * test: μΉ΄μΉ΄μ€ μΈ‘μμ μΈμ¦ μ€ν¨μμ λ°ν νλ μλ¬ μ²λ¦¬νλ ν μ€νΈ μΆκ° * fix: μ£Όμ μ κ±° * fix: exception λ³κ²½ * Feat/meeting service (#46) * WIP: Rebaseλ₯Ό μν μμ μ μ₯ # Conflicts: # src/main/java/sevenstar/marineleisure/global/exception/enums/CommonErrorCode.java # src/main/java/sevenstar/marineleisure/global/swagger/SwaggerController.java * feat : Meeting.java -> Meeting μν°ν° @builder λ₯Ό μμ μ΄λ Έν μ΄μ μ μΌλ¨ μΆκ°μμΌ°μ΅λλ€. * feat : Meeting.java -> Meeting μν°ν° @builder λ₯Ό μμ μ΄λ Έν μ΄μ μ μΌλ¨ μΆκ°μμΌ°μ΅λλ€. * feat : Meeting.java -> Meeting μν°ν° @builder λ₯Ό μμ μ΄λ Έν μ΄μ μ μΌλ¨ μΆκ°μμΌ°μ΅λλ€. * Delete MeetingServiceImplReview.md * Delete MeetingServiceUserFlow.md * feat : ν¨ν€μ§λͺ λ³κ²½ μ΄μ -> ν¨ν€μ§ λͺ μ 컨벀μ μ λ°λ₯Έ μ΄λ¦μΌλ‘ λ³κ²½νμ΅λλ€. * feat : MeetingController.java long participantCount = participantRepository.countMeetingIdMember -> long participantCount = participantRepository.countMeetingIdλ‘ μμ νμμ΅λλ€. * feat : MeetingError.java MeetingError.java λ₯Ό μΆκ°νμμ΅λλ€. * feat : MeetingMapper MeetingServiceImplμμ μ¬μ©μ€μ΄μλ Mapperλ₯Ό λΆλ¦¬νμμ΅λλ€. * feat : MeetingService.java ν¨ν€μ§ λͺ μμ μΌλ‘ μΈν΄μ μμ μ¬νμ΄ μμμ΅λλ€. * feat : MeetingServiceImpl.java νΈλμμ κ΄λ¦¬ λͺ νν νμμ΅λλ€. validate ν¨ν€μ§λ₯Ό κ°μ νμμ΅λλ€. joinMeeting μ€λ³΅ μ°Έμ¬ μ ν λ‘μ§μ κ°ννμμ΅λλ€. * `getAllMeetings(Long cursorId, int size)`: * λͺ©μ : λͺ¨λ λͺ¨μ λͺ©λ‘μ νμ΄μ§ μ²λ¦¬νμ¬ μ‘°νν©λλ€. cursorIdλ₯Ό μ¬μ©νμ¬ λ¬΄ν μ€ν¬λ‘€κ³Ό κ°μ 컀μ κΈ°λ° νμ΄μ§μ μ§μν©λλ€. * νΉμ§: @transactional(readOnly = true)λ₯Ό ν΅ν΄ μ½κΈ° μ μ© νΈλμμ μΌλ‘ μ΅μ νλμμ΅λλ€. * `getMeetingDetails(Long meetingId)`: * λͺ©μ : νΉμ λͺ¨μμ μμΈ μ 보λ₯Ό μ‘°νν©λλ€. νΈμ€νΈ, μ₯μ, νκ·Έ λ± μ°κ΄λ μ 보λ₯Ό ν¨κ» κ°μ Έμ΅λλ€. * κ°μ μμ : νμ¬ N+1 λ¬Έμ κ° λ°μν μ μμ΄, ν₯ν Fetch Joinμ ν΅ν μ±λ₯ μ΅μ νκ° νμν©λλ€. * `getStatusMyMeetings(Long memberId, Long cursorId, int size, MeetingStatus meetingStatus)`: * λͺ©μ : νΉμ νμμ μνλ³(μ: λͺ¨μ§ μ€, μλ£) λͺ¨μ λͺ©λ‘μ νμ΄μ§ μ²λ¦¬νμ¬ μ‘°νν©λλ€. * `getMeetingDetailAndMember(Long memberId, Long meetingId)`: * λͺ©μ : νΈμ€νΈκ° μμ μ λͺ¨μ μμΈ μ 보μ μ°Έμ¬μ λͺ©λ‘μ μ‘°νν©λλ€. μ°Έμ¬μλ€μ λλ€μμ ν¨κ» μ 곡ν©λλ€. * `countMeetings(Long memberId)`: * λͺ©μ : νΉμ νμμ΄ μ°Έμ¬ν λͺ¨μμ μ΄ κ°μλ₯Ό λ°νν©λλ€. * `joinMeeting(Long meetingId, Long memberId)`: * λͺ©μ : νμμ΄ νΉμ λͺ¨μμ μ°Έμ¬ν©λλ€. * μ£Όμ κ°μ : λͺ¨μ μν κ²μ¦(verifyRecruiting), μ€λ³΅ μ°Έμ¬ κ²μ¦(`verifyNotAlreadyParticipant`), λͺ¨μ μ μ μ΄κ³Ό κ²μ¦(verifyMeetingCount) λ‘μ§μ΄ κ°νλμμ΅λλ€. * κ°μ μμ : λμμ± λ¬Έμ (Race Condition) ν΄κ²°μ μν λΉκ΄μ λ½(Pessimistic Lock) μ μ©μ΄ νμν©λλ€. * `leaveMeeting(Long meetingId, Long memberId)`: * λͺ©μ : νμμ΄ λͺ¨μμμ νν΄ν©λλ€. * μ£Όμ κ°μ : νΈμ€νΈ νν΄ λ°©μ§(verifyNotHost), λͺ¨μ μνμ λ°λ₯Έ νν΄ κ°λ₯ μ¬λΆ κ²μ¦(verifyLeave) λ‘μ§μ΄ μΆκ°λμμ΅λλ€. * κ°μ μμ : MEETING_NOT_FOUND λμ CANNOT_LEAVE_COMPLETED_MEETINGκ³Ό κ°μ λ ꡬ체μ μΈ μλ¬ μ½λ μ μ©μ΄ νμν©λλ€. * `createMeeting(Long memberId, CreateMeetingRequest request)`: * λͺ©μ : μλ‘μ΄ λͺ¨μμ μμ±ν©λλ€. νΈμ€νΈλ₯Ό μ°Έμ¬μλ‘ μλ λ±λ‘νκ³ νκ·Έ μ 보λ₯Ό μ μ₯ν©λλ€. * `updateMeeting(Long meetingId, Long memberId, UpdateMeetingRequest request)`: * λͺ©μ : κΈ°μ‘΄ λͺ¨μμ μ 보λ₯Ό μμ ν©λλ€. νΈμ€νΈλ§ μμ ν μ μλλ‘ κ²μ¦ν©λλ€. * `deleteMeeting(Member member, Long meetingId)`: * λͺ©μ : λͺ¨μμ μμ ν©λλ€. * κ°μ μμ : 물리μ μμ λμ λ Όλ¦¬μ μμ (Soft Delete) λ°©μ λμ μ κ³ λ € μ€μ λλ€. * feat : MeetingValidate.java,MemberValidate.java,ParticipantValidate,SpotValidate,TagValidate.java κ²μ¦λ‘μ§μ μΆκ°νμμ΅λλ€. * feat : MemberError.java , ParticipantRepository κΈ°λ₯μ μΆκ°νμμ΅λλ€. --------- Co-authored-by: Hwang Seong Cheol a.k.a Hwuan Page <[email protected]> * fix : jellyfish λΆλΆ * fix: activity λΆλΆ * fix: member λΆλΆ * fix: member λΆλΆ * fix: spot λΆλΆ * fix: forecast λΆλΆ * fix: favorite λΆλΆ * fix: alert λΆλΆ * fix: meeting λΆλΆ --------- Co-authored-by: Gunwoong cho <[email protected]> Co-authored-by: Hwang Seong Cheol a.k.a Hwuan Page <[email protected]> Co-authored-by: MyungJin <[email protected]> Co-authored-by: LEESUNBIN <[email protected]> Co-authored-by: gunwoong <[email protected]>
* hotfix: fix * hotfix: fix * hotfix: fix
* fix: application-prod.ymlμμ μΏ ν€λ₯Ό μΈμ§ λ§μ§ κ²°μ ν μ μκ² μμ * test: ν μ€νΈ μ½λ μμ±
* chore/ReadytoDeployv1.0.0-68-HuwanPage * chore/ReadytoDeploymentv1.0.0-68-HuwanPage * remove etc * prod
* feat : Meetingtest λ₯Ό μν Util νμΌμ λλλ€. * feat : Meetingtest λ₯Ό μν Util νμΌμ λλλ€. * feat : MeetingServiceImplTest λ¨μν μ€νΈμ λλ€. * feat : MeetingControllerTest ν΅ν©ν μ€νΈμ λλ€. * feat : Build Lombokμ ν μ€νΈλ₯Ό μν μμ μ λλ€. * feat : Tag μν°ν° Tag List<String> content λ₯Ό λ³ννκΈ° μν νμΌμ λλ€. * feat : MeetingServiceImpl * feat : MeetingServiceImplμμ μμ νλ μλ΅μ μμ , λ§€νΌλ₯Ό μμ νμμ΅λλ€. * feat : Meetingμμ νμν urlμ μ΄μ΄λμ΅λλ€.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
μμ λ΄μ©
μ€ν¬λ¦°μ·
μ£Όμμ¬ν
Closes #{μ΄μ λ²νΈ}