Skip to content

Commit

Permalink
feat: houseworkComplete 생성 - Member 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
daeunkwak committed Aug 2, 2023
1 parent 5f5559a commit 228a335
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.depromeet.fairer.api;

import com.depromeet.fairer.dto.houseworkComplete.response.HouseWorkCompleteResponseDto;
import com.depromeet.fairer.global.resolver.RequestMemberId;
import com.depromeet.fairer.global.util.DateTimeUtils;
import com.depromeet.fairer.service.houseworkComplete.HouseWorkCompleteService;
import io.swagger.annotations.ApiOperation;
Expand All @@ -10,6 +11,7 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;

import java.time.LocalDate;

Expand All @@ -25,11 +27,12 @@ public class HouseWorkCompleteController {
@Tag(name = "houseWorkComplete")
@ApiOperation(value = "집안일 완료 생성 - 반복 기능 구현 후")
@PostMapping(value = "/{houseWorkId}")
public ResponseEntity<HouseWorkCompleteResponseDto> createHouseWorkComp(@PathVariable("houseWorkId") Long houseWorkId,
@RequestParam("scheduledDate") String scheduledDate) {
public ResponseEntity<HouseWorkCompleteResponseDto> createHouseWorkComp(@ApiIgnore @RequestMemberId Long memberId,
@PathVariable("houseWorkId") Long houseWorkId,
@RequestParam("scheduledDate") String scheduledDate) {
final LocalDate date = DateTimeUtils.stringToLocalDate(scheduledDate);

final Long houseWorkCompleteId = houseWorkCompleteService.create(houseWorkId, date);
final Long houseWorkCompleteId = houseWorkCompleteService.create(houseWorkId, date, memberId);
return new ResponseEntity<>(HouseWorkCompleteResponseDto.create(houseWorkCompleteId), HttpStatus.CREATED);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.depromeet.fairer.domain.feedback.Feedback;
import com.depromeet.fairer.domain.housework.HouseWork;
import com.depromeet.fairer.domain.member.Member;
import lombok.*;

import javax.persistence.*;
Expand Down Expand Up @@ -35,13 +36,19 @@ public class HouseworkComplete {
@OneToMany(mappedBy = "houseworkComplete", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Feedback> feedbackList;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member member;


public int countFeedback() {
return this.feedbackList.size();
}

public HouseworkComplete(LocalDate scheduledDate, HouseWork houseWork, LocalDateTime successDateTime) {
public HouseworkComplete(LocalDate scheduledDate, HouseWork houseWork, LocalDateTime successDateTime, Member member) {
this.setScheduledDate(scheduledDate);
this.setHouseWork(houseWork);
this.setSuccessDateTime(successDateTime);
this.setMember(member);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.depromeet.fairer.domain.member;

import com.depromeet.fairer.domain.base.BaseTimeEntity;
import com.depromeet.fairer.domain.houseworkComplete.HouseworkComplete;
import com.depromeet.fairer.dto.member.oauth.OAuthAttributes;
import com.depromeet.fairer.domain.assignment.Assignment;
import com.depromeet.fairer.domain.team.Team;
Expand Down Expand Up @@ -54,6 +55,9 @@ public class Member extends BaseTimeEntity {
@OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Assignment> assignments;

@OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true)
private List<HouseworkComplete> houseworkCompletes;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "team_id")
private Team team;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,15 @@ public class HouseWorkCompleteService {
private final HouseWorkCompleteRepository houseWorkCompleteRepository;
private final MemberRepository memberRepository;

public Long create(Long houseWorkId, LocalDate scheduledDate) {
public Long create(Long houseWorkId, LocalDate scheduledDate, Long memberId) {

HouseWork houseWork = houseWorkRepository.findById(houseWorkId)
.orElseThrow(() -> new EntityNotFoundException("houseworkId: " + houseWorkId + "에 해당하는 집안일을 찾을 수 없습니다."));

HouseworkComplete complete = new HouseworkComplete(scheduledDate, houseWork, LocalDateTime.now());
Member member = memberRepository.findById(memberId)
.orElseThrow(() -> new EntityNotFoundException("memberId: " + memberId + "에 해당하는 멤버를 찾을 수 없습니다."));

HouseworkComplete complete = new HouseworkComplete(scheduledDate, houseWork, LocalDateTime.now(), member);
return houseWorkCompleteRepository.save(complete).getHouseWorkCompleteId();
}

Expand Down

0 comments on commit 228a335

Please sign in to comment.