Skip to content

Commit

Permalink
Merge pull request #110 from MUIT-UMC/develop
Browse files Browse the repository at this point in the history
[merge] 250213 / 21th deploy
  • Loading branch information
yhi9839 authored Feb 13, 2025
2 parents cf4ae86 + 2570ffe commit f2629a0
Show file tree
Hide file tree
Showing 20 changed files with 67 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/muit/backend/controller/EmailController.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -20,6 +21,7 @@
@Slf4j
@RestController
@RequiredArgsConstructor
@Tag(name = "이메일")
public class EmailController {
private final EmailService emailService;
private final MemberRepository memberRepository;
Expand Down
13 changes: 11 additions & 2 deletions src/main/java/muit/backend/controller/MemberController.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -16,6 +17,7 @@
@RestController
@RequiredArgsConstructor
@Validated
@Tag(name = "회원")
@RequestMapping("/member")
public class MemberController {
private final MemberService memberService;
Expand All @@ -36,6 +38,7 @@ public ApiResponse<EmailRegisterResponseDTO> emailRegister(@RequestBody EmailReg
}

@PostMapping("/email/login")
@Operation(summary = "로그인 api", description = "이메일로 로그인을 하는 기능.")
// JWT 토큰을 생성하여 반환
public ApiResponse<LoginAccessTokenResponse> login(@RequestBody LoginRequestDTO dto) {
try {
Expand All @@ -50,8 +53,6 @@ public ApiResponse<LoginAccessTokenResponse> login(@RequestBody LoginRequestDTO
}
}

@PostMapping("")

@GetMapping("/{memberId}")
@Parameters({
@Parameter(name = "Authorization", description = "JWT 토큰으로, 사용자의 아이디, request header 입니다!")
Expand All @@ -64,6 +65,14 @@ public ApiResponse<MyPageResponseDTO> myPage(@RequestHeader("Authorization") Str
return ApiResponse.onSuccess(myPageResponseDTO);
}

@PatchMapping("/{memberId}")
@Operation(summary = "회원 탈퇴(비활성화) api", description = "회원 비활성화 하는 기능입니다.")
public ApiResponse<MyPageResponseDTO> 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);
}




Expand Down
2 changes: 2 additions & 0 deletions src/main/java/muit/backend/converter/AmateurConverter.java
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public static TicketResponseDTO.MemberTicketResponseDTO toTicketDTO(MemberTicket
memberTicket.getQuantity(),
memberTicket.getTotalPrice(),
memberTicket.getReservationTime(),
memberTicket.getAccountName(),
memberTicket.getReservationStatus()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/muit/backend/domain/entity/Admin.java
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/*
package muit.backend.domain.entity;
import jakarta.persistence.Entity;
Expand Down Expand Up @@ -26,3 +27,4 @@ public class Admin extends BaseEntity {
}
*/
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -41,6 +42,7 @@ public class AmateurShow extends BaseEntity {

private Integer totalTicket;

@ColumnDefault("0")
private Integer soldTicket;

private String timeInfo; // 공연시간 정보, runtime과 다름
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/muit/backend/domain/entity/member/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ public class MemberTicket extends BaseEntity {

private LocalDateTime reservationTime;

private String accountName;

@Enumerated(EnumType.STRING)
private ReservationStatus reservationStatus;

Expand Down
5 changes: 1 addition & 4 deletions src/main/java/muit/backend/domain/entity/musical/Event.java
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import muit.backend.domain.enums.ActiveStatus;

@Builder
@AllArgsConstructor
Expand All @@ -13,4 +14,5 @@ public class MyPageResponseDTO {
private Long id;
private String name;
private String username;
private ActiveStatus status;
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
public class TicketRequestDTO {
@JsonProperty("quantity")
private Integer quantity;
private String accountName;
}

Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public static class MemberTicketResponseDTO{
private int quantity;
private int totalPrice;
private LocalDateTime date;
private String accountName;
private ReservationStatus reservationStatus;
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/muit/backend/repository/PostRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public interface PostRepository extends JpaRepository<Post, Long> {
//익명 + 핫게용
Page<Post> 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<Post> findAllHot(@Param("title") String title, Pageable pageable);


Expand Down
14 changes: 9 additions & 5 deletions src/main/java/muit/backend/s3/FilePath.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
2 changes: 2 additions & 0 deletions src/main/java/muit/backend/service/MemberService.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);

}
17 changes: 17 additions & 0 deletions src/main/java/muit/backend/service/MemberServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();

}



Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
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;
import org.springframework.web.bind.annotation.RestController;

@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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit f2629a0

Please sign in to comment.