Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

main 브랜치로 3차 merge #68

Merged
merged 12 commits into from
Jun 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
6 changes: 5 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,8 @@ tasks.named('test') {
}
jar {
enabled = false
}
}

tasks.withType(JavaCompile) {
options.compilerArgs << "-parameters"
}

This file was deleted.

155 changes: 149 additions & 6 deletions src/main/java/ddareunging/ddareunging_server/domain/Course.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,49 @@

import com.fasterxml.jackson.annotation.JsonProperty;
import ddareunging.ddareunging_server.domain.common.BaseEntity;
import ddareunging.ddareunging_server.domain.enums.CourseTheme;
import ddareunging.ddareunging_server.dto.RegisterNewCourseRequestDTO;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;



@Entity
@Getter
@Builder
//@ToString(exclude = {"replies", "spots", "user"})
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "Course")
public class Course extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "course_id")
private Long courseId;

@Column(name = "course_image")
private String courseImage;
@Column(name = "course_like")
private Integer courseLike;
public void setCourseLike(Integer courseLike) { this.courseLike = courseLike; }

@Column(name = "course_name")
private String courseName;
private String detail;
private Integer theme;

@Enumerated(EnumType.STRING)
private CourseTheme theme;
private Float distance;
private Integer kcal;
private Integer time;
Expand All @@ -35,14 +53,139 @@ public class Course extends BaseEntity {
@JoinColumn(name = "userId", referencedColumnName = "userId")
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private User user;

@Transient
private String user_nickname;

public void setUserNickname(String nickname) {
this.user_nickname = nickname;
}


@OneToMany(mappedBy = "course", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonManagedReference
private List<Reply> replies = new ArrayList<>();


@OneToMany(mappedBy = "course", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonManagedReference
private List<Spot> spots = new ArrayList<>();

public Long getCourseId() {
return courseId;
}

public void setCourseId(Long courseId) {
this.courseId = courseId;
}

public String getCourseImage() {
return courseImage;
}

public void setCourseImage(String courseImage) {
this.courseImage = courseImage;
}

public Integer getCourseLike() {
return courseLike;
}

public String getCourseName() {
return courseName;
}

public void setCourseName(String courseName) {
this.courseName = courseName;
}

public String getDetail() {
return detail;
}

public void setDetail(String detail) {
this.detail = detail;
}

public CourseTheme getTheme() {
return theme;
}

public void setTheme(CourseTheme theme) {
this.theme = theme;
}

public Float getDistance() {
return distance;
}

public void setDistance(Float distance) {
this.distance = distance;
}

public Integer getKcal() {
return kcal;
}

public void setKcal(Integer kcal) {
this.kcal = kcal;
}

public Integer getTime() {
return time;
}

public void setTime(Integer time) {
this.time = time;
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public String getUser_nickname() {
return user_nickname;
}

public void setUser_nickname(String user_nickname) {
this.user_nickname = user_nickname;
}

public List<Reply> getReplies() {
return replies;
}

public void setReplies(List<Reply> replies) {
this.replies = replies;
}

public List<Spot> getSpots() {
return spots;
}

public void addSpot(Spot spot) {
spots.add(spot);
spot.setCourse(this);
}

public void removeSpot(Spot spot) {
spots.remove(spot);
spot.setCourse(null);
}

public void setSpots(List<Spot> spots) {
this.spots.clear();
if (spots != null) {
for (Spot spot : spots) {
addSpot(spot);
}
}
}

public static Course of(User user, RegisterNewCourseRequestDTO registerNewCourseRequestDTO) {
// 새로운 코스를 등록
return Course.builder().courseImage(registerNewCourseRequestDTO.courseImage())
Expand All @@ -56,4 +199,4 @@ public static Course of(User user, RegisterNewCourseRequestDTO registerNewCourse
.user(user)
.build();
}
}
}
6 changes: 4 additions & 2 deletions src/main/java/ddareunging/ddareunging_server/domain/Like.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
public class Like extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "like_id")
private Long likeId;

@ManyToOne(fetch = FetchType.LAZY)
Expand All @@ -32,7 +34,7 @@ public void setUserNickname(String nickname) {
}

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "courseId", referencedColumnName = "courseId")
@JoinColumn(name = "course_id", referencedColumnName = "course_id")
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private Course course;
}
}
63 changes: 60 additions & 3 deletions src/main/java/ddareunging/ddareunging_server/domain/Reply.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,38 @@
package ddareunging.ddareunging_server.domain;

import com.fasterxml.jackson.annotation.JsonBackReference;
import ddareunging.ddareunging_server.dto.ReplyRequestDto;
import com.fasterxml.jackson.annotation.JsonProperty;
import ddareunging.ddareunging_server.domain.common.BaseEntity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;

@Entity
@Getter
@Builder
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "Reply")
@AttributeOverrides({
@AttributeOverride(name = "created_at", column = @Column(name = "reply_time"))
})
public class Reply extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "reply_id")
private Long replyId;

@Column(name = "reply_content")
private String replyContent;

@ManyToOne(fetch = FetchType.LAZY)
Expand All @@ -29,7 +41,52 @@ public class Reply extends BaseEntity {
private User user;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "courseId", referencedColumnName = "courseId")
@JoinColumn(name = "course_id", referencedColumnName = "course_id")
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@JsonBackReference
private Course course;

public Long getReplyId() {
return replyId;
}

public void setReplyId(Long replyId) {
this.replyId = replyId;
}

public String getReplyContent() {
return replyContent;
}

public void setReplyContent(String replyContent) {
this.replyContent = replyContent;
}

public Course getCourse() {
return course;
}

public void setCourse(Course course) {
this.course = course;
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

// 돌아가는 기존코드!!!
public static Reply createReply(User user, Course course, ReplyRequestDto replyRequest) {
Reply reply = new Reply();
reply.setReplyContent(replyRequest.getReplyContent());
reply.setCourse(course);
reply.setUser(user);
//reply.setReplyTime(LocalDateTime.now());
return reply;
}


}
Loading