Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
yeseul106 committed Jul 17, 2023
2 parents b2cda9f + ee307c3 commit 750831c
Show file tree
Hide file tree
Showing 17 changed files with 230 additions and 46 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package com.puzzling.puzzlingServer.api.project.domain;

import com.puzzling.puzzlingServer.api.member.domain.Member;
import com.puzzling.puzzlingServer.api.template.domain.ReviewTemplate;
import com.puzzling.puzzlingServer.common.entity.BaseTimeEntity;
import io.micrometer.core.annotation.Counted;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.ColumnDefault;

import javax.persistence.*;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;

import java.lang.reflect.Array;
import java.util.List;

import static lombok.AccessLevel.PROTECTED;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,6 @@ public interface UserProjectRepository extends JpaRepository<UserProject, Long>
List<UserProject> findAllByProjectIdOrderByReviewCountDesc(Long projectId);

Boolean existsByMemberIdAndProjectId(Long memberId, Long projectId);

boolean existsByProjectIdAndNickname(Long projectId, String memberProjectNickname);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import com.puzzling.puzzlingServer.common.response.ErrorStatus;
import com.puzzling.puzzlingServer.common.util.MemberUtil;
import lombok.RequiredArgsConstructor;
import org.apache.catalina.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
Expand All @@ -26,14 +25,11 @@

import java.nio.ByteBuffer;
import java.security.Principal;
import java.security.SecureRandom;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.TextStyle;
import java.util.*;
import java.util.stream.Collectors;

import static com.puzzling.puzzlingServer.common.util.DateUtil.checkTodayIsReviewDay;

@Service
@RequiredArgsConstructor
public class ProjectServiceImpl implements ProjectService {
Expand Down Expand Up @@ -74,7 +70,7 @@ public ProjectOwnPuzzleResponseDto getMyPuzzles(Long memberId, Long projectId, S
Page<Review> pageReviews = reviewRepository.findTop15ByMemberIdAndProjectId(memberId, projectId, pageable);
List<Review> top15Reviews = pageReviews.getContent();

Boolean isReviewDay = checkTodayIsReviewDay(today, projectId);
Boolean isReviewDay = checkTodayIsReviewDay(today, findProjectById(projectId).getReviewCycle());
Boolean hasTodayReview = reviewRepository.existsReviewByReviewDate(today);

List<PuzzleObjectDto> result = new ArrayList<>();
Expand All @@ -99,7 +95,7 @@ public ProjectTeamPuzzleResponseDto getTeamPuzzles(Principal principal, Long pro
throw new BadRequestException(ErrorStatus.VALIDATION_REQUEST_MISSING_EXCEPTION.getMessage());
}
Long memberId = MemberUtil.getMemberId(principal);
Boolean isReviewDay = checkTodayIsReviewDay(today, projectId);
Boolean isReviewDay = checkTodayIsReviewDay(today, findProjectById(projectId).getReviewCycle());
Boolean hasTodayReview = reviewRepository.existsReviewByReviewDate(today);
List<Review> reviews = reviewRepository.findAllByProjectIdOrderByReviewDateAsc(projectId);

Expand Down Expand Up @@ -184,6 +180,9 @@ public ProjectJoinResponseDto joinProject(Long memberId, ProjectJoinRequestDto p
if (userProjectRepository.existsByMemberIdAndProjectId(memberId, projectJoinRequestDto.getProjectId())){
throw new BadRequestException(("이미 프로젝트에 참여한 팀원입니다."));
}
if (userProjectRepository.existsByProjectIdAndNickname(projectJoinRequestDto.getProjectId(),projectJoinRequestDto.getMemberProjectNickname())){
throw new BadRequestException(("이미 프로젝트에 있는 닉네임입니다."));
}
Member member = findMemberById(memberId);
Project project = findProjectById(projectJoinRequestDto.getProjectId());

Expand Down Expand Up @@ -232,19 +231,6 @@ private Project findProjectById(Long projectId) {
.orElseThrow(() -> new NotFoundException(ErrorStatus.NOT_FOUND_PROJECT.getMessage()));
}

private Boolean checkTodayIsReviewDay (String today, Long projectId) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate todayDate = LocalDate.parse(today, formatter);

DayOfWeek dayOfWeek = todayDate.getDayOfWeek();
Locale koreanLocale = new Locale("ko", "KR");
String dayOfWeekKorean = dayOfWeek.getDisplayName(TextStyle.SHORT, koreanLocale);

String reviewCycle = findProjectById(projectId).getReviewCycle();
List<String> weekdayList = Arrays.asList(reviewCycle.split(","));
return weekdayList.contains(dayOfWeekKorean);
}

private ProjectMyPuzzleObjectDto mapperMyPuzzleObject(Long memberId, Long projectId) {
Member findMember = findMemberById(memberId);
int puzzleCount = reviewRepository.findByMemberIdAndProjectId(memberId, projectId).size();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.puzzling.puzzlingServer.api.review.controller;

import com.puzzling.puzzlingServer.api.review.dto.request.Review5FRequestDto;
import com.puzzling.puzzlingServer.api.review.dto.response.MyReviewProjectResponseDto;
import com.puzzling.puzzlingServer.api.review.dto.response.ReviewActionPlanResponseDto;
import com.puzzling.puzzlingServer.api.review.dto.request.ReviewAARRequestDto;
import com.puzzling.puzzlingServer.api.review.dto.response.ReviewPreviousTemplateResponseDto;

import com.puzzling.puzzlingServer.api.review.dto.response.ReviewTeamStatusResponseDto;
import com.puzzling.puzzlingServer.api.review.dto.response.ReviewTemplateGetResponseDto;
import com.puzzling.puzzlingServer.api.review.dto.request.ReviewTILRequestDto;
import com.puzzling.puzzlingServer.api.review.service.ReviewService;
Expand All @@ -14,7 +16,6 @@
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;


@RestController
Expand Down Expand Up @@ -49,12 +50,23 @@ public ApiResponse createReviewAAR(@PathVariable("memberId") Long memberId,@Path

@GetMapping("member/{memberId}/project/{projectId}/review/previous-template")
public ApiResponse<ReviewPreviousTemplateResponseDto> getPreviousReviewTemplate(@PathVariable Long memberId, @PathVariable Long projectId) {
return ApiResponse.success(SuccessStatus.GET_REVIEW_PREVIOUS_TEMPLATE, reviewService.getPreviousReviewTemplate(memberId, projectId));
return ApiResponse.success(SuccessStatus.GET_REVIEW_PREVIOUS_TEMPLATE_SUCCESS, reviewService.getPreviousReviewTemplate(memberId, projectId));

}

@GetMapping("member/{memberId}/project/{projectId}/actionplan")
public ApiResponse<ReviewActionPlanResponseDto> getReviewActionPlans(@PathVariable Long memberId, @PathVariable Long projectId) {
return ApiResponse.success(SuccessStatus.GET_REVIEW_ACTION_PLAN, reviewService.getReviewActionPlans(memberId, projectId));
return ApiResponse.success(SuccessStatus.GET_REVIEW_ACTION_PLAN_SUCCESS, reviewService.getReviewActionPlans(memberId, projectId));
}

@GetMapping("project/{projectId}/team/review")
public ApiResponse<ReviewTeamStatusResponseDto> getTeamReviewStatus(@PathVariable Long projectId, @RequestParam String startDate,
@RequestParam String endDate) {
return ApiResponse.success(SuccessStatus.GET_REVIEW_TEAM_STATUS_SUCCESS, reviewService.getTeamReviewStatus(projectId, startDate, endDate));
}

@GetMapping("member/{memberId}/project/{projectId}/review")
public ApiResponse<MyReviewProjectResponseDto> getMyReviewProjects(@PathVariable Long memberId, @PathVariable Long projectId) {
return ApiResponse.success(SuccessStatus.GET_PROJECT_MY_REVIEWS_SUCCESS, reviewService.getMyReviewProjects(memberId, projectId));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import static lombok.AccessLevel.PROTECTED;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.puzzling.puzzlingServer.api.review.dto.response;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import static lombok.AccessLevel.PRIVATE;

@Getter
@NoArgsConstructor(access = PRIVATE)
@AllArgsConstructor
public class MyReviewProjectResponseDto {
private Long reviewId;
private String reviewDate;
private String contents;

public static MyReviewProjectResponseDto of(Long reviewId, String reviewDate, String contents) {
return new MyReviewProjectResponseDto(reviewId,reviewDate,contents);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.puzzling.puzzlingServer.api.review.dto.response;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

import static lombok.AccessLevel.PRIVATE;

@Getter
@NoArgsConstructor(access = PRIVATE)
@AllArgsConstructor
public class ReviewTeamStatusResponseDto {
private String reviewDay;
private String reviewDate;
private List<ReviewWriterObjectDto> reviewWriters;
private List<ReviewWriterObjectDto> nonReviewWriters;

public static ReviewTeamStatusResponseDto of (String reviewDay, String reviewDate, List<ReviewWriterObjectDto> reviewWriters,
List<ReviewWriterObjectDto> nonReviewWriters) {
return new ReviewTeamStatusResponseDto(reviewDay, reviewDate, reviewWriters, nonReviewWriters);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.puzzling.puzzlingServer.api.review.dto.response;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import static lombok.AccessLevel.PRIVATE;

@Getter
@NoArgsConstructor(access = PRIVATE)
@AllArgsConstructor
public class ReviewWriterObjectDto {
private String memberNickname;
private String memberRole;

public static ReviewWriterObjectDto of (String memberNickname, String memberRole) {
return new ReviewWriterObjectDto(memberNickname, memberRole);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Optional;


public interface ReviewRepository extends JpaRepository<Review, Long> {
Expand All @@ -22,6 +22,7 @@ public interface ReviewRepository extends JpaRepository<Review, Long> {

List<Review> findAllByProjectIdOrderByReviewDateAsc(Long projectId);

List<Review> findAllByMemberIdAndProjectIdOrderByReviewDateAsc(Long memberId, Long projectId);
List<Review> findAllByMemberIdAndProjectIdOrderByReviewDateDesc(Long memberId, Long projectId);

Optional<Review> findByMemberIdAndProjectIdAndReviewDate(Long memberId, Long projectId, String ReviewDate);
}
Loading

0 comments on commit 750831c

Please sign in to comment.