diff --git a/src/main/java/banban/springboot/apiPayload/code/status/ErrorStatus.java b/src/main/java/banban/springboot/apiPayload/code/status/ErrorStatus.java index 919d2a6..1dcbd9e 100644 --- a/src/main/java/banban/springboot/apiPayload/code/status/ErrorStatus.java +++ b/src/main/java/banban/springboot/apiPayload/code/status/ErrorStatus.java @@ -34,7 +34,7 @@ public enum ErrorStatus implements BaseErrorCode { // News Error NEWS_NOT_EXIST_FOUND(HttpStatus.BAD_REQUEST, "NEWS4001", "뉴스가 없습니다."), - + //Store Error STORE_NOT_FOUND(HttpStatus.NOT_FOUND, "STORE_4001","가게가 없습니다."); diff --git a/src/main/java/banban/springboot/domain/entity/Member.java b/src/main/java/banban/springboot/domain/entity/Member.java index c862147..99be1f4 100644 --- a/src/main/java/banban/springboot/domain/entity/Member.java +++ b/src/main/java/banban/springboot/domain/entity/Member.java @@ -26,4 +26,8 @@ public class Member { @OneToMany(mappedBy = "member", cascade = CascadeType.ALL) private List NewsList = new ArrayList<>(); + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "teamGroup_id", nullable = false) + private TeamGroup teamGroup; } diff --git a/src/main/java/banban/springboot/service/MemberService.java b/src/main/java/banban/springboot/service/MemberService.java index ae2b6b4..0eb23ac 100644 --- a/src/main/java/banban/springboot/service/MemberService.java +++ b/src/main/java/banban/springboot/service/MemberService.java @@ -1,6 +1,8 @@ package banban.springboot.service; import banban.springboot.domain.entity.Member; +import banban.springboot.domain.entity.TeamGroup; +import banban.springboot.repository.GroupRepository; import banban.springboot.repository.MemberRepository; import banban.springboot.web.dto.request.MemberRequestDTO; import banban.springboot.web.dto.response.MemberResponseDTO; @@ -13,12 +15,17 @@ @RequiredArgsConstructor public class MemberService { private final MemberRepository memberRepository; + private final GroupRepository groupRepository; + + public MemberResponseDTO createUser(MemberRequestDTO memberRequestDTO, String groupKey) { + TeamGroup teamGroup = groupRepository.findByGroupKey(groupKey) + .orElseThrow(() -> new RuntimeException("그룹키가 없습니다.")); - public MemberResponseDTO createUser(MemberRequestDTO memberRequestDTO) { //DTO to Entity Member member = Member.builder() .username(memberRequestDTO.getUsername()) .password(memberRequestDTO.getPassword()) + .teamGroup(teamGroup) .build(); //saved to repository @@ -28,28 +35,37 @@ public MemberResponseDTO createUser(MemberRequestDTO memberRequestDTO) { return MemberResponseDTO.builder() .id(savedMember.getId()) .username(savedMember.getUsername()) + .teamGroup(teamGroup) .build(); } //ID로 사용자 조회 - public MemberResponseDTO findMemberById(Long id) { + public MemberResponseDTO findMemberById(Long id,String groupKey) { + TeamGroup teamGroup = groupRepository.findByGroupKey(groupKey) + .orElseThrow(() -> new RuntimeException("그룹키가 없습니다.")); + Member member = memberRepository.findById(id) .orElseThrow(() -> new RuntimeException("사용자 조회를 할 수 없습니다.")); return MemberResponseDTO.builder() .id(member.getId()) .username(member.getUsername()) + .teamGroup(teamGroup) .build(); } //Username으로 사용자 조회 - public MemberResponseDTO getMemberByUsername(String username) { + public MemberResponseDTO getMemberByUsername(String username, String groupKey) { + TeamGroup teamGroup = groupRepository.findByGroupKey(groupKey) + .orElseThrow(() -> new RuntimeException("그룹키가 없습니다.")); + Member member = memberRepository.findByUsername(username) .orElseThrow(() -> new RuntimeException("사용자 조회를 할 수 없습니다.")); return MemberResponseDTO.builder() .id(member.getId()) .username(member.getUsername()) + .teamGroup(teamGroup) .build(); } } \ No newline at end of file diff --git a/src/main/java/banban/springboot/service/NewsService.java b/src/main/java/banban/springboot/service/NewsService.java index 0daebdf..c944af1 100644 --- a/src/main/java/banban/springboot/service/NewsService.java +++ b/src/main/java/banban/springboot/service/NewsService.java @@ -12,7 +12,6 @@ import banban.springboot.web.dto.request.NewsRequestDTO; import banban.springboot.web.dto.response.NewsResponseDTO; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/banban/springboot/web/controller/MemberController.java b/src/main/java/banban/springboot/web/controller/MemberController.java index 2238d77..9904f46 100644 --- a/src/main/java/banban/springboot/web/controller/MemberController.java +++ b/src/main/java/banban/springboot/web/controller/MemberController.java @@ -1,6 +1,7 @@ package banban.springboot.web.controller; import banban.springboot.apiPayload.ApiResponse; +import banban.springboot.service.GroupService; import banban.springboot.service.MemberService; import banban.springboot.web.dto.request.MemberRequestDTO; import banban.springboot.web.dto.response.MemberResponseDTO; @@ -15,22 +16,24 @@ public class MemberController { private final MemberService memberService; + /* 사용자 생성 API*/ - @PostMapping("/users/login") - public ApiResponse createUser(@RequestBody @Valid MemberRequestDTO memberRequestDTO) { - MemberResponseDTO MemberResponseDTO = memberService.createUser(memberRequestDTO); + @PostMapping("{groupKey}/users/login") + public ApiResponse createUser(@RequestBody @Valid MemberRequestDTO memberRequestDTO,@PathVariable("groupKey") String groupKey) { + MemberResponseDTO MemberResponseDTO = memberService.createUser(memberRequestDTO,groupKey); return ApiResponse.onSuccess(MemberResponseDTO);} /* ID로 사용자 조회 API */ - @GetMapping("/users/login/{memberId}") - public ApiResponse getUserById(@PathVariable Long memberId) { - MemberResponseDTO MemberResponseDTO = memberService.findMemberById(memberId); + @GetMapping("{groupKey}/users/login/{memberId}") + public ApiResponse getUserById(@PathVariable Long memberId,@PathVariable("groupKey") String groupKey) { + MemberResponseDTO MemberResponseDTO = memberService.findMemberById(memberId,groupKey); return ApiResponse.onSuccess(MemberResponseDTO);} /** - - Username으로 사용자 조회 API*/@GetMapping("/users/login/username") - public ApiResponse getUserByUsername(@RequestParam String username) { - MemberResponseDTO MemberResponseDTO = memberService.getMemberByUsername(username); + Username으로 사용자 조회 API + */ + @GetMapping("{groupKey}/users/login/username") + public ApiResponse getUserByUsername(@RequestParam String username,@PathVariable("groupKey") String groupKey) { + MemberResponseDTO MemberResponseDTO = memberService.getMemberByUsername(username,groupKey); return ApiResponse.onSuccess(MemberResponseDTO);} } \ No newline at end of file diff --git a/src/main/java/banban/springboot/web/dto/request/NewsRequestDTO.java b/src/main/java/banban/springboot/web/dto/request/NewsRequestDTO.java index f135905..a1bf356 100644 --- a/src/main/java/banban/springboot/web/dto/request/NewsRequestDTO.java +++ b/src/main/java/banban/springboot/web/dto/request/NewsRequestDTO.java @@ -6,6 +6,7 @@ import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.Setter; +import org.hibernate.annotations.ColumnDefault; import org.springframework.web.multipart.MultipartFile; import java.time.LocalDateTime; @@ -24,6 +25,7 @@ public class NewsRequestDTO { //private List images; // 사용자가 업로드한 이미지 + @ColumnDefault("false") private boolean isBreakingNews; // 속보 여부 @NotNull(message = "긍정인지 부정인지 작성해주세요") diff --git a/src/main/java/banban/springboot/web/dto/response/MemberResponseDTO.java b/src/main/java/banban/springboot/web/dto/response/MemberResponseDTO.java index 67d67a6..0ad3851 100644 --- a/src/main/java/banban/springboot/web/dto/response/MemberResponseDTO.java +++ b/src/main/java/banban/springboot/web/dto/response/MemberResponseDTO.java @@ -1,5 +1,6 @@ package banban.springboot.web.dto.response; +import banban.springboot.domain.entity.TeamGroup; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @@ -12,4 +13,5 @@ public class MemberResponseDTO { private Long id; private String username; + private TeamGroup teamGroup; } \ No newline at end of file