From dc27e61e73cd63be176428cda44ab8b4635e2bfb Mon Sep 17 00:00:00 2001 From: yhi9839 Date: Wed, 12 Feb 2025 17:17:25 +0900 Subject: [PATCH 1/5] =?UTF-8?q?fix=20:=20=EC=86=8C=EA=B7=B9=EC=9E=A5=20?= =?UTF-8?q?=EA=B3=B5=EC=97=B0,=20swagger=20=EC=9A=A9=20tag,=20=ED=9A=8C?= =?UTF-8?q?=EC=9B=90=20=ED=83=88=ED=87=B4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiPayLoad/code/status/ErrorStatus.java | 1 + .../backend/controller/EmailController.java | 2 ++ .../backend/controller/MemberController.java | 13 +++++++++++-- .../backend/converter/AmateurConverter.java | 2 ++ .../java/muit/backend/domain/entity/Admin.java | 2 ++ .../domain/entity/amateur/AmateurShow.java | 2 ++ .../backend/domain/entity/member/Member.java | 4 ++++ .../dto/memberDTO/MyPageResponseDTO.java | 2 ++ .../muit/backend/service/MemberService.java | 2 ++ .../muit/backend/service/MemberServiceImpl.java | 17 +++++++++++++++++ .../socialLogin/OauthController.java | 4 ++++ 11 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/main/java/muit/backend/apiPayLoad/code/status/ErrorStatus.java b/src/main/java/muit/backend/apiPayLoad/code/status/ErrorStatus.java index bf5d29e..c04fb5c 100644 --- a/src/main/java/muit/backend/apiPayLoad/code/status/ErrorStatus.java +++ b/src/main/java/muit/backend/apiPayLoad/code/status/ErrorStatus.java @@ -32,6 +32,7 @@ public enum ErrorStatus implements BaseErrorCode { PASSWORD_NOT_MATCH(HttpStatus.BAD_REQUEST, "MEMBER4003", "비밀번호가 일치하지 않습니다."), MEMBER_INVALID_CODE(HttpStatus.BAD_REQUEST, "MEMBER4010", "토큰이 유효하지 않습니다."), MEMBER_NOT_ADMIN(HttpStatus.FORBIDDEN, "MEMBER4011", "해당 사용자게에게 관리자 권한이 없습니다."), + MEMBER_ALREADY_DEACTIVATED(HttpStatus.BAD_REQUEST, "MEMBER4012", "해당 회원은 이미 탈퇴(비활성화) 상태입니다,"), // MEMBER TICKET ERROR diff --git a/src/main/java/muit/backend/controller/EmailController.java b/src/main/java/muit/backend/controller/EmailController.java index a25a94b..343738b 100644 --- a/src/main/java/muit/backend/controller/EmailController.java +++ b/src/main/java/muit/backend/controller/EmailController.java @@ -1,5 +1,6 @@ package muit.backend.controller; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.mail.MessagingException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -20,6 +21,7 @@ @Slf4j @RestController @RequiredArgsConstructor +@Tag(name = "이메일") public class EmailController { private final EmailService emailService; private final MemberRepository memberRepository; diff --git a/src/main/java/muit/backend/controller/MemberController.java b/src/main/java/muit/backend/controller/MemberController.java index 9076ba1..c228b57 100644 --- a/src/main/java/muit/backend/controller/MemberController.java +++ b/src/main/java/muit/backend/controller/MemberController.java @@ -3,6 +3,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import muit.backend.apiPayLoad.ApiResponse; @@ -16,6 +17,7 @@ @RestController @RequiredArgsConstructor @Validated +@Tag(name = "회원") @RequestMapping("/member") public class MemberController { private final MemberService memberService; @@ -36,6 +38,7 @@ public ApiResponse emailRegister(@RequestBody EmailReg } @PostMapping("/email/login") + @Operation(summary = "로그인 api", description = "이메일로 로그인을 하는 기능.") // JWT 토큰을 생성하여 반환 public ApiResponse login(@RequestBody LoginRequestDTO dto) { try { @@ -50,8 +53,6 @@ public ApiResponse login(@RequestBody LoginRequestDTO } } - @PostMapping("") - @GetMapping("/{memberId}") @Parameters({ @Parameter(name = "Authorization", description = "JWT 토큰으로, 사용자의 아이디, request header 입니다!") @@ -64,6 +65,14 @@ public ApiResponse myPage(@RequestHeader("Authorization") Str return ApiResponse.onSuccess(myPageResponseDTO); } + @PatchMapping("/{memberId}") + @Operation(summary = "회원 탈퇴(비활성화) api", description = "회원 비활성화 하는 기능입니다.") + public ApiResponse deactivateMember(@RequestHeader("Authorization") String authorizationHeader, @PathVariable("memberId") Long memberId) { + Member member = memberService.getMemberByToken(authorizationHeader); + MyPageResponseDTO myPageResponseDTO = memberService.deactivateMember(member.getId(), memberId); + return ApiResponse.onSuccess(myPageResponseDTO); + } + diff --git a/src/main/java/muit/backend/converter/AmateurConverter.java b/src/main/java/muit/backend/converter/AmateurConverter.java index 133efd3..fc3d7e5 100644 --- a/src/main/java/muit/backend/converter/AmateurConverter.java +++ b/src/main/java/muit/backend/converter/AmateurConverter.java @@ -25,6 +25,8 @@ public static AmateurShow toEntityWithDetails(Member member, AmateurEnrollReques .age(dto.getAge()) .starring(dto.getStarring()) .totalTicket(dto.getTotalTicket()) + .soldTicket(0) + .cancelFee(0) .timeInfo(dto.getTimeInfo()) .account(dto.getAccount()) .contact(dto.getContact()) diff --git a/src/main/java/muit/backend/domain/entity/Admin.java b/src/main/java/muit/backend/domain/entity/Admin.java index bf68092..704cb30 100644 --- a/src/main/java/muit/backend/domain/entity/Admin.java +++ b/src/main/java/muit/backend/domain/entity/Admin.java @@ -1,3 +1,4 @@ +/* package muit.backend.domain.entity; import jakarta.persistence.Entity; @@ -26,3 +27,4 @@ public class Admin extends BaseEntity { } +*/ diff --git a/src/main/java/muit/backend/domain/entity/amateur/AmateurShow.java b/src/main/java/muit/backend/domain/entity/amateur/AmateurShow.java index ee3cf0d..21f47ce 100644 --- a/src/main/java/muit/backend/domain/entity/amateur/AmateurShow.java +++ b/src/main/java/muit/backend/domain/entity/amateur/AmateurShow.java @@ -10,6 +10,7 @@ import muit.backend.domain.enums.AmateurStatus; import muit.backend.dto.adminDTO.amateurTicketDTO.AmateurTicketRequestDTO; import muit.backend.dto.adminDTO.manageAmateurShowDTO.ManageAmateurShowRequestDTO; +import org.hibernate.annotations.ColumnDefault; import java.util.ArrayList; import java.util.List; @@ -41,6 +42,7 @@ public class AmateurShow extends BaseEntity { private Integer totalTicket; + @ColumnDefault("0") private Integer soldTicket; private String timeInfo; // 공연시간 정보, runtime과 다름 diff --git a/src/main/java/muit/backend/domain/entity/member/Member.java b/src/main/java/muit/backend/domain/entity/member/Member.java index 4542c66..060e608 100644 --- a/src/main/java/muit/backend/domain/entity/member/Member.java +++ b/src/main/java/muit/backend/domain/entity/member/Member.java @@ -94,6 +94,10 @@ public void encodePassword(String password) { this.password = password; } + public void deactivateMember(Member member) { + this.activeStatus = ActiveStatus.INACTIVE; + } + public void updateMember(ManageMemberRequestDTO.UpdateMemberRequestDTO requestDTO) { if (requestDTO.getUsername() != null) { this.username = requestDTO.getUsername(); diff --git a/src/main/java/muit/backend/dto/memberDTO/MyPageResponseDTO.java b/src/main/java/muit/backend/dto/memberDTO/MyPageResponseDTO.java index a02ba74..f156b9e 100644 --- a/src/main/java/muit/backend/dto/memberDTO/MyPageResponseDTO.java +++ b/src/main/java/muit/backend/dto/memberDTO/MyPageResponseDTO.java @@ -4,6 +4,7 @@ import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; +import muit.backend.domain.enums.ActiveStatus; @Builder @AllArgsConstructor @@ -13,4 +14,5 @@ public class MyPageResponseDTO { private Long id; private String name; private String username; + private ActiveStatus status; } diff --git a/src/main/java/muit/backend/service/MemberService.java b/src/main/java/muit/backend/service/MemberService.java index e2866ac..bc84dfb 100644 --- a/src/main/java/muit/backend/service/MemberService.java +++ b/src/main/java/muit/backend/service/MemberService.java @@ -11,4 +11,6 @@ public interface MemberService { public Member getAdminByToken(String receivedBearerToken); public MyPageResponseDTO getMyPage(Long tokenId, Long memberId); + public MyPageResponseDTO deactivateMember(Long tokenId, Long memberId); + } diff --git a/src/main/java/muit/backend/service/MemberServiceImpl.java b/src/main/java/muit/backend/service/MemberServiceImpl.java index c1a0a46..fd53705 100644 --- a/src/main/java/muit/backend/service/MemberServiceImpl.java +++ b/src/main/java/muit/backend/service/MemberServiceImpl.java @@ -9,6 +9,7 @@ import muit.backend.config.jwt.TokenProvider; import muit.backend.converter.MemberConverter; import muit.backend.domain.entity.member.Member; +import muit.backend.domain.enums.ActiveStatus; import muit.backend.domain.enums.Role; import muit.backend.dto.memberDTO.*; import muit.backend.repository.MemberRepository; @@ -144,7 +145,23 @@ public MyPageResponseDTO getMyPage(Long tokenId, Long memberId){ .username(member.getUsername()).build(); } + @Transactional + @Override + public MyPageResponseDTO deactivateMember(Long tokenId, Long memberId){ + Member member = memberRepository.findById(memberId).orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND)); + if (!tokenId.equals(memberId)) { + throw new GeneralException(ErrorStatus.MEMBER_NOT_AUTHORIZED); + } + if (!member.getActiveStatus().equals(ActiveStatus.ACTIVE)) { + throw new GeneralException(ErrorStatus.MEMBER_ALREADY_DEACTIVATED); + } + member.deactivateMember(member); + return MyPageResponseDTO.builder() + .id(memberId) + .name(member.getName()) + .username(member.getUsername()).build(); + } diff --git a/src/main/java/muit/backend/service/memberService/socialLogin/OauthController.java b/src/main/java/muit/backend/service/memberService/socialLogin/OauthController.java index 8b12107..275862b 100644 --- a/src/main/java/muit/backend/service/memberService/socialLogin/OauthController.java +++ b/src/main/java/muit/backend/service/memberService/socialLogin/OauthController.java @@ -1,5 +1,7 @@ package muit.backend.service.memberService.socialLogin; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -7,11 +9,13 @@ @RestController @RequiredArgsConstructor +@Tag(name = "소셜 로그인") public class OauthController { private final GoogleOauthService googleOauthService; @GetMapping("/login/oauth2/code/google") + @Operation(summary = "구글 로그인") public AuthResponse loginWithGoogle(@RequestParam("code") String code) { return googleOauthService.authenticateWithGoogle(code); From 410c500d628e317e1c78cb81b605deac99b41056 Mon Sep 17 00:00:00 2001 From: challonsy Date: Wed, 12 Feb 2025 19:00:06 +0900 Subject: [PATCH 2/5] refactor : delete likes column from post entity --- src/main/java/muit/backend/domain/entity/member/Post.java | 2 -- src/main/java/muit/backend/repository/PostRepository.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/muit/backend/domain/entity/member/Post.java b/src/main/java/muit/backend/domain/entity/member/Post.java index 91ee292..6cc3821 100644 --- a/src/main/java/muit/backend/domain/entity/member/Post.java +++ b/src/main/java/muit/backend/domain/entity/member/Post.java @@ -55,8 +55,6 @@ public class Post extends BaseEntity { private String lostItem; - private Integer likes; - @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) private List images = new ArrayList<>(); diff --git a/src/main/java/muit/backend/repository/PostRepository.java b/src/main/java/muit/backend/repository/PostRepository.java index 8ba108b..febc73f 100644 --- a/src/main/java/muit/backend/repository/PostRepository.java +++ b/src/main/java/muit/backend/repository/PostRepository.java @@ -20,7 +20,7 @@ public interface PostRepository extends JpaRepository { //익명 + 핫게용 Page findAllByPostTypeAndTitleContaining(PostType postType, String title, PageRequest pageRequest); - @Query("SELECT p.post FROM PostLikes p WHERE p.post.title LIKE CONCAT('%', :title, '%') GROUP BY p.post.id HAVING COUNT(p)>=2") + @Query("SELECT p.post FROM PostLikes p WHERE p.post.title LIKE CONCAT('%', :title, '%') GROUP BY p.post.id HAVING COUNT(p)>=5") Page findAllHot(@Param("title") String title, Pageable pageable); From 41651c88a342bbf06d55943c6f9b62aa33ca4178 Mon Sep 17 00:00:00 2001 From: challonsy Date: Wed, 12 Feb 2025 19:03:52 +0900 Subject: [PATCH 3/5] reafctor : cancel likes deletion --- .../muit/backend/converter/postConverter/PostConverter.java | 1 + src/main/java/muit/backend/domain/entity/member/Post.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/main/java/muit/backend/converter/postConverter/PostConverter.java b/src/main/java/muit/backend/converter/postConverter/PostConverter.java index 14a3e37..e159dce 100644 --- a/src/main/java/muit/backend/converter/postConverter/PostConverter.java +++ b/src/main/java/muit/backend/converter/postConverter/PostConverter.java @@ -29,6 +29,7 @@ public static Post toPost(Member member, PostType postType, PostRequestDTO reque .title(requestDTO.getTitle()) .content(requestDTO.getContent()) .commentCount(0) + .likes(0) .reportCount(0) .postLikes(new ArrayList<>()) .images(imgList) diff --git a/src/main/java/muit/backend/domain/entity/member/Post.java b/src/main/java/muit/backend/domain/entity/member/Post.java index 6cc3821..91ee292 100644 --- a/src/main/java/muit/backend/domain/entity/member/Post.java +++ b/src/main/java/muit/backend/domain/entity/member/Post.java @@ -55,6 +55,8 @@ public class Post extends BaseEntity { private String lostItem; + private Integer likes; + @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) private List images = new ArrayList<>(); From 5254a0b96e1240570ae16be6e65bce04e18bb500 Mon Sep 17 00:00:00 2001 From: sweatbukets Date: Wed, 12 Feb 2025 19:19:14 +0900 Subject: [PATCH 4/5] =?UTF-8?q?feat=20:=20eventType=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/muit/backend/domain/entity/musical/Event.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/muit/backend/domain/entity/musical/Event.java b/src/main/java/muit/backend/domain/entity/musical/Event.java index ff78e33..cbb4c51 100644 --- a/src/main/java/muit/backend/domain/entity/musical/Event.java +++ b/src/main/java/muit/backend/domain/entity/musical/Event.java @@ -24,10 +24,7 @@ public class Event extends BaseEntity { private LocalDate evFrom; - private LocalDate evTo; - - @Enumerated(EnumType.STRING) - private EventType eventType; + private LocalDate evTo; @ManyToOne (fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "musical_id") From a0bfcd36f362006c2672da43435699aea5f7998e Mon Sep 17 00:00:00 2001 From: yhi9839 Date: Thu, 13 Feb 2025 18:18:16 +0900 Subject: [PATCH 5/5] =?UTF-8?q?fix=20:=20=ED=8B=B0=EC=BC=93=20=EC=98=88?= =?UTF-8?q?=EB=A7=A4=EC=97=90=20accountName=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/converter/MemberTicketConverter.java | 1 + .../backend/domain/entity/member/MemberTicket.java | 2 ++ .../backend/dto/ticketDTO/TicketRequestDTO.java | 1 + .../backend/dto/ticketDTO/TicketResponseDTO.java | 1 + src/main/java/muit/backend/s3/FilePath.java | 14 +++++++++----- .../ticketService/MemberTicketServiceImpl.java | 1 + 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/muit/backend/converter/MemberTicketConverter.java b/src/main/java/muit/backend/converter/MemberTicketConverter.java index c734ee1..441bf70 100644 --- a/src/main/java/muit/backend/converter/MemberTicketConverter.java +++ b/src/main/java/muit/backend/converter/MemberTicketConverter.java @@ -15,6 +15,7 @@ public static TicketResponseDTO.MemberTicketResponseDTO toTicketDTO(MemberTicket memberTicket.getQuantity(), memberTicket.getTotalPrice(), memberTicket.getReservationTime(), + memberTicket.getAccountName(), memberTicket.getReservationStatus() ); } diff --git a/src/main/java/muit/backend/domain/entity/member/MemberTicket.java b/src/main/java/muit/backend/domain/entity/member/MemberTicket.java index 420ec6d..40c622d 100644 --- a/src/main/java/muit/backend/domain/entity/member/MemberTicket.java +++ b/src/main/java/muit/backend/domain/entity/member/MemberTicket.java @@ -28,6 +28,8 @@ public class MemberTicket extends BaseEntity { private LocalDateTime reservationTime; + private String accountName; + @Enumerated(EnumType.STRING) private ReservationStatus reservationStatus; diff --git a/src/main/java/muit/backend/dto/ticketDTO/TicketRequestDTO.java b/src/main/java/muit/backend/dto/ticketDTO/TicketRequestDTO.java index 25cdc3f..ec15bca 100644 --- a/src/main/java/muit/backend/dto/ticketDTO/TicketRequestDTO.java +++ b/src/main/java/muit/backend/dto/ticketDTO/TicketRequestDTO.java @@ -12,5 +12,6 @@ public class TicketRequestDTO { @JsonProperty("quantity") private Integer quantity; + private String accountName; } diff --git a/src/main/java/muit/backend/dto/ticketDTO/TicketResponseDTO.java b/src/main/java/muit/backend/dto/ticketDTO/TicketResponseDTO.java index 8289122..39421f9 100644 --- a/src/main/java/muit/backend/dto/ticketDTO/TicketResponseDTO.java +++ b/src/main/java/muit/backend/dto/ticketDTO/TicketResponseDTO.java @@ -25,6 +25,7 @@ public static class MemberTicketResponseDTO{ private int quantity; private int totalPrice; private LocalDateTime date; + private String accountName; private ReservationStatus reservationStatus; } diff --git a/src/main/java/muit/backend/s3/FilePath.java b/src/main/java/muit/backend/s3/FilePath.java index 95c1db1..c10ee2e 100644 --- a/src/main/java/muit/backend/s3/FilePath.java +++ b/src/main/java/muit/backend/s3/FilePath.java @@ -6,17 +6,21 @@ @Getter @AllArgsConstructor public enum FilePath { + AMATEUR_CASTING("amateur_casting"), + AMATEUR_NOTICE("amateur_notice"), + AMATEUR_SUMMARY("amateur_summary"), AMATEUR("amateur"), BLIND("blind"), FOUND("found"), LOST("lost"), + MUSICAL_ACTOR("music_actor"), + MUSICAL_NOTICE("music_notice"), + MUSICAL_POSTER("music_poster"), + MUSICAL_PREVIEW("music_preview"), REVIEW("review"), + Section("section"), SIGHT("sight"), - AMATEUR_CASTING("amateur_casting"), - AMATEUR_NOTICE("amateur_notice"), - AMATEUR_SUMMARY("amateur_summary"), - Theatre("theatre"), - Section("section"); + Theatre("theatre"); private final String path; } diff --git a/src/main/java/muit/backend/service/ticketService/MemberTicketServiceImpl.java b/src/main/java/muit/backend/service/ticketService/MemberTicketServiceImpl.java index 1a2298e..bc8647b 100644 --- a/src/main/java/muit/backend/service/ticketService/MemberTicketServiceImpl.java +++ b/src/main/java/muit/backend/service/ticketService/MemberTicketServiceImpl.java @@ -122,6 +122,7 @@ public TicketResponseDTO.MemberTicketResponseDTO createMemberTicket(Member membe .quantity(requestDTO.getQuantity()) .totalPrice(totalPrice) .reservationTime(LocalDateTime.now()) + .accountName(requestDTO.getAccountName()) .reservationStatus(ReservationStatus.RESERVE_AWAIT) .build(); memberTicketRepository.save(memberTicket);