Skip to content

Commit

Permalink
πŸ”€ Merge: Main Merge 28μ°¨ (#137)
Browse files Browse the repository at this point in the history
* πŸ› κ΄€λ¦¬μž 결제 λ‚΄μ—­ 쑰회 였λ₯˜ μˆ˜μ • (#133)

* πŸ‘” κ΄€λ¦¬μž νšŒμ› λͺ©λ‘ 쑰회 νƒˆν‡΄ν•œ νšŒμ› response 둜직 μΆ”κ°€

* πŸ‘” κ΄€λ¦¬μž νšŒμ› λͺ©λ‘ 쑰회 νƒˆν‡΄ν•œ νšŒμ› response 둜직 μΆ”κ°€

* Feat: μ’‹μ•„μš” 갯수 쑰회 API κ΅¬ν˜„ (#135)

* ✨ Feat: μ’‹μ•„μš” 갯수 쑰회 dto 생성

* ✨ Feat: μ’‹μ•„μš” 갯수 쑰회 Service κ΅¬ν˜„

* ✨ Feat: μ’‹μ•„μš” 갯수 쑰회 API κ΅¬ν˜„

* πŸ› κ²Œμ‹œλ¬Ό λŒ“κΈ€ 갯수 차감 둜직 μΆ”κ°€

* πŸ‘” κ΄€λ¦¬μž νšŒμ› λͺ©λ‘ 쑰회 νƒˆν‡΄ν•œ νšŒμ› 제거 둜직 μˆ˜μ • (#138)
  • Loading branch information
joowojr authored May 15, 2024
1 parent 396ae0a commit 0f73b74
Show file tree
Hide file tree
Showing 9 changed files with 88 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,6 @@ public DatasetResponse.DatasetProc saveDataset(DatasetRequest request) {
return toDatasetProc(datasetRepository.save(toEntity(request)));
}

public ModelResponse.ModelProc changeActiveModel(Model model){
modelRepository.findModelByStatus(Status.ACTIVE).ifPresent(Model::inactivate);
model.activate();
return toModelProc(model);
}

public ModelResponse.ModelProc deleteModel(Model model){
modelRepository.delete(model);
return toModelProc(model);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,14 @@ public DashboardResponse.DashboardResult getDashboard() {
public MemberResponse.MemberListResult getMemberList(int page, JobKeyword jobKeyword) {
PageRequest pageRequest = PageRequest.of(page, 12, Sort.by("id").descending());
if (jobKeyword == null) {
return toMemberList(memberRepository.findMemberByAuthority(Authority.MEMBER, pageRequest));
return toMemberList(memberRepository.findMemberByAuthorityAndEmailIsNot(Authority.MEMBER, "", pageRequest));
} else
return toMemberList(memberRepository.findMemberByAuthorityAndJobKeyword(Authority.MEMBER, jobKeyword, pageRequest));
return toMemberList(memberRepository.findMemberByAuthorityAndJobKeywordAndEmailIsNot(Authority.MEMBER, jobKeyword, "",pageRequest));
}

public MemberResponse.MemberListResult getMemberListByKeyword(int page, String keyword) {
PageRequest pageRequest = PageRequest.of(page, 12, Sort.by("id").descending());
return toMemberList(memberRepository.queryFindMemberByAuthorityAndKeyword(Authority.MEMBER, keyword, pageRequest));
return toMemberList(memberRepository.queryFindMemberByAuthorityAndKeywordAndEmailIsNotEmpty(Authority.MEMBER, keyword, pageRequest));
}

public PointResponse.PointStatics getPointStatics(int year, int month) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.codez4.meetfolio.domain.comment.service;

import com.codez4.meetfolio.domain.board.Board;
import com.codez4.meetfolio.domain.board.repository.BoardRepository;
import com.codez4.meetfolio.domain.board.service.BoardQueryService;
import com.codez4.meetfolio.domain.comment.Comment;
import com.codez4.meetfolio.domain.comment.dto.CommentResponse;
Expand Down Expand Up @@ -64,7 +65,8 @@ public CommentResponse.CommentProc update(String content, Long commentId) {
}

public CommentResponse.CommentProc delete(Long commentId) {

Comment comment = commentQueryService.findById(commentId);
comment.getBoard().changeComment(false);
commentRepository.deleteById(commentId);
return CommentResponse.toCommentProc(commentId);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package com.codez4.meetfolio.domain.like.controller;

import com.codez4.meetfolio.domain.board.Board;
import com.codez4.meetfolio.domain.board.service.BoardQueryService;
import com.codez4.meetfolio.domain.like.dto.LikeResponse;
import com.codez4.meetfolio.domain.like.service.LikeCommandService;
import com.codez4.meetfolio.domain.like.service.LikeQueryService;
import com.codez4.meetfolio.domain.member.Member;
import com.codez4.meetfolio.global.annotation.AuthenticationMember;
import com.codez4.meetfolio.global.response.ApiResponse;
Expand All @@ -10,24 +13,35 @@
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;

@Tag(name = "μ’‹μ•„μš” API")
@RestController
@RequiredArgsConstructor
@RequestMapping("/api")
public class LikeController {

private final LikeCommandService likeCommandService;
private final LikeQueryService likeQueryService;
private final BoardQueryService boardQueryService;

@Operation(summary = "κ²Œμ‹œκΈ€ μ’‹μ•„μš” μš”μ²­", description = "κ²Œμ‹œκΈ€ μ’‹μ•„μš” μš”μ²­μ„ POST둜 λ³΄λƒ…λ‹ˆλ‹€.")
@Parameter(name = "boardId", description = "κ²Œμ‹œκΈ€ Id, Path Variableμž…λ‹ˆλ‹€.", required = true, example = "1", in = ParameterIn.PATH)
@PostMapping("/board-likes/{boardId}")
public ApiResponse<LikeResponse> likeProcess(@AuthenticationMember Member member,
@PathVariable(name = "boardId") Long boardId) {
public ApiResponse<LikeResponse.LikeResult> likeProcess(@AuthenticationMember Member member,
@PathVariable(name = "boardId") Long boardId) {

return ApiResponse.onSuccess(likeCommandService.changeLike(member, boardId));
}

@Operation(summary = "κ²Œμ‹œκΈ€ μ’‹μ•„μš” 쑰회", description = "κ²Œμ‹œκΈ€μ˜ μ’‹μ•„μš” 수λ₯Ό μ‘°νšŒν•©λ‹ˆλ‹€.")
@Parameter(name = "boardId", description = "κ²Œμ‹œκΈ€ Id, Path Variableμž…λ‹ˆλ‹€.", required = true, example = "1", in = ParameterIn.PATH)
@GetMapping("/board-likes/{boardId}")
public ApiResponse<LikeResponse.LikeCountResult> getLikeCount(@AuthenticationMember Member member,
@PathVariable(name = "boardId") Long boardId){
Board board = boardQueryService.findById(boardId);
return ApiResponse.onSuccess(likeQueryService.getLikeCount(board));
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,61 @@

import java.time.LocalDateTime;

@Schema(description = "μ’‹μ•„μš” 처리 응닡 DTO")
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
public class LikeResponse {

@Schema(description = "μ’‹μ•„μš” μƒνƒœ", example = "ACTIVE / INACTIVE")
private String status;

@Schema(description = "응닡 생성 μ‹œκ°„")
private LocalDateTime createdAt;
@Schema(description = "μ’‹μ•„μš” 처리 응닡 DTO")
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
public static class LikeResult {
@Schema(description = "κ²Œμ‹œλ¬Ό ID")
private Long boardId;

public static LikeResponse toLikeResponse(Like like) {
@Schema(description = "κ²Œμ‹œλ¬Ό μ’‹μ•„μš” 수")
private int likeCount;

return LikeResponse.builder()
.status(like.getStatus().toString())
.createdAt(LocalDateTime.now())
.build();
@Schema(description = "μ’‹μ•„μš” μƒνƒœ", example = "ACTIVE / INACTIVE")
private String status;

@Schema(description = "응닡 생성 μ‹œκ°„")
private LocalDateTime createdAt;
}

@Schema(description = "μ’‹μ•„μš” μ‘°ν™” 응닡 DTO")
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
public static class LikeCountResult{
@Schema(description = "κ²Œμ‹œλ¬Ό ID")
private Long boardId;

@Schema(description = "κ²Œμ‹œλ¬Ό μ’‹μ•„μš” 수")
private int likeCount;
}

public static LikeResult toLikeResult(Board board, Like like) {
return LikeResult.builder()
.boardId(board.getId())
.likeCount(board.getLikeCount())
.status(like.getStatus().toString())
.createdAt(LocalDateTime.now())
.build();
}

public static LikeCountResult toLikeCountResult(Board board){
return LikeCountResult.builder()
.boardId(board.getId())
.likeCount(board.getLikeCount())
.build();
}

public static Like toEntity(Member member, Board board) {
return Like.builder()
.member(member)
.board(board)
.build();
.member(member)
.board(board)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class LikeCommandService {
private final LikeRepository likeRepository;
private final BoardQueryService boardQueryService;

public LikeResponse changeLike(Member member, Long boardId) {
public LikeResponse.LikeResult changeLike(Member member, Long boardId) {

Board board = boardQueryService.findById(boardId);

Expand All @@ -28,7 +28,7 @@ public LikeResponse changeLike(Member member, Long boardId) {

board.changeLike(like.getStatus());

return LikeResponse.toLikeResponse(like);
return LikeResponse.toLikeResult(board, like);
}

private Like createLike(Member member, Board board) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.codez4.meetfolio.domain.like.service;

import com.codez4.meetfolio.domain.board.Board;
import com.codez4.meetfolio.domain.board.dto.BoardQueryItem;
import com.codez4.meetfolio.domain.enums.Status;
import com.codez4.meetfolio.domain.like.dto.LikeResponse;
import com.codez4.meetfolio.domain.like.repository.LikeRepository;
import com.codez4.meetfolio.domain.member.Member;
import lombok.RequiredArgsConstructor;
Expand All @@ -11,6 +13,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import static com.codez4.meetfolio.domain.like.dto.LikeResponse.toLikeCountResult;

@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
Expand All @@ -27,4 +31,8 @@ public Page<BoardQueryItem> findMyLikedBoards(Member member, Integer page) {
return likedBoards;

}

public LikeResponse.LikeCountResult getLikeCount(Board board){
return toLikeCountResult(board);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -141,20 +141,11 @@ public static MemberListResult toMemberList(Page<Member> members) {
}

public static MemberDetailInfo toMemberDetailInfo(Member member) {
MemberDetailInfo.MemberDetailInfoBuilder builder = MemberDetailInfo.builder()
return MemberDetailInfo.builder()
.memberId(member.getId())
.registrationDate(member.getCreatedAt().toLocalDate())
.email(member.getEmail())
.point(member.getPoint());
if (Objects.equals(member.getEmail(), "")) {
return builder
.grade("")
.major("")
.jobKeyword(member.getJobKeyword().getDescription())
.point(member.getPoint())
.status("WITHDRAW")
.build();
} else return MemberDetailInfo.builder()
.point(member.getPoint())
.grade(member.getGrade().getDescription())
.major(member.getMajor())
.jobKeyword(member.getJobKeyword().getDescription())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ public interface MemberRepository extends JpaRepository<Member, Long> {

Optional<Member> findByEmail(String email);

Page<Member> findMemberByAuthority(Authority authority, Pageable pageable);
Page<Member> findMemberByAuthorityAndEmailIsNot(Authority authority, String email, Pageable pageable);

Page<Member> findMemberByAuthorityAndJobKeyword( Authority authority, JobKeyword jobKeyword, Pageable pageable);
Page<Member> findMemberByAuthorityAndJobKeywordAndEmailIsNot(Authority authority, JobKeyword jobKeyword, String email, Pageable pageable);

@Query("SELECT m FROM Member m WHERE SUBSTRING(m.email,1,length(m.email) -13 ) LIKE concat('%',:keyword,'%') AND m.authority =:authority")
Page<Member> queryFindMemberByAuthorityAndKeyword(Authority authority,String keyword, Pageable pageable);
Page<Member> queryFindMemberByAuthorityAndKeywordAndEmailIsNotEmpty(Authority authority,String keyword, Pageable pageable);

}

0 comments on commit 0f73b74

Please sign in to comment.